• Nenhum resultado encontrado

FACULDADE DE TECNOLOGIA SENAC GOIÁS Segurança da Informação SI-I JONAS PIRES DE CAMPOS NETO RANGEL RODRIGUES XAVIER DE ASSIS RAPHAEL PEREIRA MODANEZ

N/A
N/A
Protected

Academic year: 2021

Share "FACULDADE DE TECNOLOGIA SENAC GOIÁS Segurança da Informação SI-I JONAS PIRES DE CAMPOS NETO RANGEL RODRIGUES XAVIER DE ASSIS RAPHAEL PEREIRA MODANEZ"

Copied!
17
0
0

Texto

(1)

FACULDADE DE TECNOLOGIA SENAC GOIÁS

Segurança da Informação – SI-I

JONAS PIRES DE CAMPOS NETO

RANGEL RODRIGUES XAVIER DE ASSIS

RAPHAEL PEREIRA MODANEZ

PROJETO

INTEGRADOR

LUCÍLIA GOMES RIBEIRO

KELLY ALVES MARTINS DE LIMA

DINAILTON JOSÉ DA SILVA

RAFAEL LEAL MARTINS

FABRICIO LEONARD

GOIÂNIA,

2016

(2)

2

JONAS PIRES DE CAMPOS NETO

RANGEL RODRIGUES XAVIER DE ASSIS

RAPHAEL PEREIRA MODANEZ

PROJETO INTEGRADOR

Relatório apresentado como requisito parcial para

obtenção de aprovação nas disciplinas de

Infraestrutura de Redes de Computadores,

Laboratório

de

Computação,

Lógica

de

Programação e Algoritmos, Princípios de

Segurança

da

Informação

e

Redes

de

Computadores, no Curso de Segurança da

Informação, na Faculdade de Tecnologia SENAC

Goiás.

LUCÍLIA GOMES RIBEIRO

KELLY ALVES MARTINS DE LIMA

DINAILTON JOSÉ DA SILVA

RAFAEL LEAL MARTINS

FABRICIO LEONARD

GOIÂNIA,

2016

(3)

3

RESUMO

Este projeto está focado na construção de um relatório acadêmico, com artefatos

gerados a partir de uma auditoria de segurança realizada na fase de exploração do Pentest. O

desenvolvimento das atividades parte do estudo de ferramentas para coleta de informações da

rede (faixa de ips, serviços e portas abertas, endereços ethernet), e elaboração do um

programa em C para ler este arquivo e carregar as informações em variáveis compostas

(vector) e implementar a lógica para calcular:

 Total de hosts ativos;

 Quantidade de portas abertas;

 Frequência de cada porta aberta;

 Tipo de serviços disponíveis (de acordo com as portas abertas);

 Relatório com a identificação dos endereços ethernet das estações de trabalho e

servidores;

(4)

4

SUMÁRIO

1 RESUMO ... 3

2 INTRODUÇÃO ... 5

2 OBJETIVO ... 5

3 DESENVOLVIMENTO ... 5

4 RESULTADOS ... 6

5 BIBLIOGRAFIA ... 7

APÊNDICE A – Relatório Nmap ... 8

APÊNDICE A – Algoritmo ... 11

(5)

5

1. INTRODUÇÃO

O Projeto Integrador é uma estratégia de ensino–aprendizagem cujo objetivo é

proporcionar a interdisciplinaridade entre todos os temas/assuntos/bases abordados durante o

curso de Segurança da Informação. O processo de realização do Projeto Integrador fornece

subsídios para a avaliação das competências relacionadas ao perfil profissional de Segurança

da Informação, e seu objetivo maior é “articular teoria e prática” mediante o contato do aluno

com diversos contextos do mundo do trabalho.

2. OBJETIVO

Aplicação de todos os conhecimentos e técnicas aprendidos durante o 1º período no

curso de Segurança da Informação, visando o mapeamento de uma rede através do programa

Nmap, geração do relatório em arquivo .txt, elaboração de um programa em C para análise do

arquivo e implementação de uma lógica visando mostrar resultados específicos, tais como:

números e frequência de portas abertas, quantidade de hosts ativos, total de endereços

Ethernet por fabricante e hosts, e por último, descrever o que pode ser feito por um

profissional de segurança da informação a partir dos relatórios gerados, tendo em base as

possíveis vulnerabilidades encontradas.

3. DESENVOLVIMENTO

O primeiro passo para a elaboração do projeto foi o de gerar o arquivo de log da rede,

através do programa Nmap, em sua interface gráfica do Windows, usamos o Zenmap,

relatório este gerado à partir de nossos conhecimentos adquiridos na disciplina de Redes,

professor Dinailton José da Silva. O comando utilizado para que este relatório fosse gerado

foi: #nmap –sS 192.168.1.0/24 > nmap.txt, sendo a opção –sS (scan TCP SYN) a opção de

scan padrão e mais popular por boas razões. Pode ser executada rapidamente, escaneando

milhares de portas por segundo em uma rede rápida, não bloqueada por firewalls intrusivos. O

scan SYN é relativamente não-obstrusivo e camuflado, uma vez que ele nunca completa uma

conexão TCP. Ele também trabalha contra qualquer pilha TCP padronizada ao invés de

depender de idiossincrasias de plataformas específicas como os scans Fin/Null/Xmas,

Maimon e Idle fazem. Ele também permite uma diferenciação limpa e confiável entre os

estados aberto (open), fechado (closed), e filtrado (filtered).

(6)

6

Com o relatório em mãos, foi elaborado um algoritmo, sob supervisão da professora

de Lógica de Programação e Algoritmo, Lucília Gomes Ribeiro, e implementado em

linguagem C, sob orientação do professor Fabrício Leonard, de Laboratório de Programação,

que tem por finalidade: 1. Abrir o arquivo em colocar em um vetor uma linha do arquivo do

Nmap, percorrendo todo o código com esta linha, colocando os dados como Ips, Mac

Address, Portas e Serviços, em vetores, e implementando a lógica com os laços de repetição

“for”, “while”, estruturas condicionais “if” e “else”, finalizando o primeiro laço “while”,

retorna ao mesmo com a segunda linha do arquivo capturado, assim, sucessivamente até

encontre o final do arquivo. E, ao final do programa, nos é apresentando em modelo de

formulário os resultados esperados e já citados anteriormente.

E por último, sob a orientação da professora de Laboratório de Computação, Kelly

Alves Martins de Lima, elaboramos um site que tem por finalidade a exposição dos trabalhos

realizados durante o Projeto Integrador SI-1, em HTML5 e CSS, ficando o mesmo já

preparado para receber os trabalhos dos Projetos Integradores vindouros.

4. RESULTADOS

Em posse do relatório gerado pelo programa, analisamos as portas abertas e seus

serviços, e vemos quais não correspondem aos serviços essenciais e que estão abertas, para, a

partir daí, analisarmos as demais portas abertas e da necessidade de mantê-las neste estado,

visando assim diminuir a possibilidade de invasão de hackers, e da existência de trojans e

demais malwares no sistema que podem estar abrindo as portas.

Assim, a adoção de uma boa política de segurança da informação, principalmente num

ambiente corporativo, faz-se ainda mais necessário, e a instalação de softwares anti-vírus,

mantendo-os sempre atualizados, bem como os demais softwares e implementação de um

firewall.

(7)

7

5.

REFERÊNCIAS BIBLIOGRÁFICAS

Técnicas de escaneamento de portas, 2016. Disponível em:

https://nmap.org/man/pt_BR/man-port-scanning-techniques.html/

. Acesso em: 09 de dez. 2016.

C library, 2016. Disponível em:

http://www.cplusplus.com/reference/clibrary/

. Acesso em 09

de dez. 2016.

BOSWELL, Dustin. A Arte de Escrever Programas Legíveis: técnicas simples e práticas para

a elaboração de programas fáceis de serem lidos e entendidos. 1. ed. São Paulo: Novatec,

2012.

(8)

Apendice A

1

2 Starting Nmap 7.00 ( https://nmap.org ) at 2016-12-08 20:22 Horário brasileiro de verão

3 Nmap scan report for 192.168.1.1

4 Host is up (0.00s latency).

5 Not shown: 1996 closed ports

6 PORT STATE SERVICE

7 23/tcp open telnet

8 80/tcp open http

9 161/udp open snmp

10 514/udp open|filtered syslog

11 MAC Address: F8:B1:56:73:E4:3D (Dell)

12

13 Nmap scan report for 192.168.1.2

14 Host is up (0.00062s latency).

15 Not shown: 998 filtered ports, 998 open|filtered ports

16 PORT STATE SERVICE

17 902/tcp open iss-realsecure

18 912/tcp open apex-mesh

19 68/udp closed dhcpc

20 137/udp open netbios-ns

21 MAC Address: 50:E5:49:FA:F0:9A (Giga-byte Technology)

22

23 Nmap scan report for 192.168.1.107

24 Host is up (0.00082s latency).

25 Not shown: 998 closed ports

26 PORT STATE SERVICE

27 22/tcp open ssh

28 80/tcp open http

29 MAC Address: 08:00:27:55:DD:68 (Oracle VirtualBox virtual NIC)

30

31 Nmap scan report for 192.168.1.108

32 Host is up (0.00033s latency).

33 Not shown: 998 filtered ports, 998 open|filtered ports

34 PORT STATE SERVICE

35 902/tcp open iss-realsecure

36 912/tcp open apex-mesh

37 68/udp closed dhcpc

38 137/udp open netbios-ns

39 MAC Address: 50:E5:49:F6:33:5F (Giga-byte Technology)

40

41 Nmap scan report for 192.168.1.119

42 Host is up (0.00s latency).

43 Not shown: 1996 closed ports

44 PORT STATE SERVICE

45 23/tcp open telnet

46 80/tcp open http

47 67/udp open|filtered dhcps

48 68/udp open|filtered dhcpc

49 MAC Address: 00:23:5D:5C:4C:40 (Cisco Systems)

50

51 Nmap scan report for 192.168.1.120

52 Host is up (0.00013s latency).

53 Not shown: 1996 closed ports

54 PORT STATE SERVICE

55 68/udp open|filtered dhcpc

56 623/udp open|filtered asf-rmcp

57 631/udp open|filtered ipp

58 5353/udp open zeroconf

59 MAC Address: 50:E5:49:F7:07:BA (Giga-byte Technology)

60

61 Nmap scan report for 192.168.1.128

62 Host is up (0.00038s latency).

63 Not shown: 998 filtered ports, 998 open|filtered ports

64 PORT STATE SERVICE

65 902/tcp open iss-realsecure

66 912/tcp open apex-mesh

67 68/udp closed dhcpc

68 137/udp open netbios-ns

69 MAC Address: 50:E5:49:F4:B0:00 (Giga-byte Technology)

70

71 Nmap scan report for 192.168.1.136

72 Host is up (0.00017s latency).

73 Not shown: 998 filtered ports, 998 open|filtered ports

74 PORT STATE SERVICE

75 902/tcp open iss-realsecure

76 912/tcp open apex-mesh

77 68/udp closed dhcpc

78 137/udp open netbios-ns

(9)

Apendice A

80

81 Nmap scan report for 192.168.1.138

82 Host is up (0.00011s latency).

83 Not shown: 1996 closed ports

84 PORT STATE SERVICE

85 68/udp open|filtered dhcpc

86 69/udp open|filtered tftp

87 623/udp open|filtered asf-rmcp

88 5353/udp open zeroconf

89 MAC Address: 08:00:27:B3:9D:2A (Oracle VirtualBox virtual NIC)

90

91 Nmap scan report for 192.168.1.149

92 Host is up (0.00020s latency).

93 Not shown: 998 filtered ports, 998 open|filtered ports

94 PORT STATE SERVICE

95 902/tcp open iss-realsecure

96 912/tcp open apex-mesh

97 68/udp closed dhcpc

98 137/udp open netbios-ns

99 MAC Address: 50:E5:49:F8:3B:2E (Giga-byte Technology)

100

101 Nmap scan report for 192.168.1.153

102 Host is up (0.00s latency).

103 Not shown: 1999 closed ports

104 PORT STATE SERVICE

105 623/udp open|filtered asf-rmcp

106 MAC Address: 50:E5:49:F7:0A:93 (Giga-byte Technology)

107

108 Nmap scan report for 192.168.1.160

109 Host is up (0.00013s latency).

110 Not shown: 998 filtered ports, 998 open|filtered ports

111 PORT STATE SERVICE

112 902/tcp open iss-realsecure

113 912/tcp open apex-mesh

114 68/udp closed dhcpc

115 137/udp open netbios-ns

116 MAC Address: 50:E5:49:FA:F0:33 (Giga-byte Technology)

117

118 Nmap scan report for 192.168.1.171

119 Host is up (0.000042s latency).

120 Not shown: 1997 filtered ports

121 PORT STATE SERVICE

122 22/tcp open ssh

123 80/tcp open http

124 623/udp open|filtered asf-rmcp

125 MAC Address: 08:00:27:25:6B:FD (Oracle VirtualBox virtual NIC)

126

127 Nmap scan report for 192.168.1.174

128 Host is up (0.00018s latency).

129 Not shown: 998 open|filtered ports, 995 filtered ports

130 PORT STATE SERVICE

131 135/tcp open msrpc 132 139/tcp open netbios-ssn 133 445/tcp open microsoft-ds 134 902/tcp open iss-realsecure 135 912/tcp open apex-mesh 136 68/udp closed dhcpc

137 137/udp open netbios-ns

138 MAC Address: 50:E5:49:FA:F0:D9 (Giga-byte Technology)

139

140 Nmap scan report for 192.168.1.179

141 Host is up (0.0012s latency).

142 Not shown: 998 filtered ports, 998 open|filtered ports

143 PORT STATE SERVICE

144 902/tcp open iss-realsecure

145 912/tcp open apex-mesh

146 68/udp closed dhcpc

147 137/udp open netbios-ns

148 MAC Address: 50:E5:49:F7:0B:56 (Giga-byte Technology)

149

150 Nmap scan report for 192.168.1.180

151 Host is up (0.00s latency).

152 Not shown: 1981 closed ports

153 PORT STATE SERVICE

154 135/tcp open msrpc

155 139/tcp open netbios-ssn

156 445/tcp open microsoft-ds

157 902/tcp open iss-realsecure

(10)

Apendice A 159 5432/tcp open postgresql 160 49152/tcp open unknown 161 49153/tcp open unknown 162 49154/tcp open unknown 163 49155/tcp open unknown 164 49159/tcp open unknown 165 49160/tcp open unknown

166 137/udp open netbios-ns

167 138/udp open|filtered netbios-dgm

168 500/udp open|filtered isakmp

169 623/udp open|filtered asf-rmcp

170 1900/udp open|filtered upnp

171 4500/udp open|filtered nat-t-ike

172 5355/udp open|filtered llmnr

173 MAC Address: 50:E5:49:F7:07:83 (Giga-byte Technology)

174

175 Nmap scan report for 192.168.1.186

176 Host is up (0.00013s latency).

177 Not shown: 1992 closed ports

178 PORT STATE SERVICE

179 22/tcp open ssh

180 53/tcp open domain

181 111/tcp open rpcbind

182 53/udp open domain

183 111/udp open rpcbind

184 623/udp open|filtered asf-rmcp

185 631/udp open|filtered ipp

186 775/udp open|filtered acmaint_transd

187 MAC Address: 50:E5:49:FA:F1:DD (Giga-byte Technology)

188

189 Nmap scan report for 192.168.1.196

190 Host is up (0.00020s latency).

191 Not shown: 998 filtered ports, 998 open|filtered ports

192 PORT STATE SERVICE

193 902/tcp open iss-realsecure

194 912/tcp open apex-mesh

195 68/udp closed dhcpc

196 137/udp open netbios-ns

197 MAC Address: 50:E5:49:FA:EF:B7 (Giga-byte Technology)

198

199 Nmap scan report for 192.168.1.200

200 Host is up (0.00024s latency).

201 Not shown: 998 filtered ports, 998 open|filtered ports

202 PORT STATE SERVICE

203 902/tcp open iss-realsecure

204 912/tcp open apex-mesh

205 68/udp closed dhcpc

206 137/udp open netbios-ns

207

208 Nmap done: 255 IP addresses (19 hosts up) scanned in 1105.65 seconds

(11)

Apendice B

1 /*Alunos: Jonas Pires de Campos Neto 2 Rangel Rodigues Xavier de Assis

3 Raphael Pereira Modanez

4

5 Descrição: Algoritmo para elaboração de um programa para leitura de um arquivo gerado a partir 6 de um scaneamento da rede atravez do programa Nmap (utilizado o Zenmap, plataforma 7 para windows do Nmap), e através deste programa informar: 1. A frequência de cada 8 porta aberta; 2. Descrição dos serviços disponíveis de acordo com a porta aberta; 9 3. Descrição dos endereços Ethernet; 4. Total de Endereços Ethernet por fabricante.*/ 10

11 Algoritmo ProjetoIntegrador{ 12 //Declaração de Variáveis

13 caracter line[1000], ip[1000][20], nulo1[50], nulo2[50], nulo3[50], nulo4[50]; 14 caracter numeroPorta[1000][15], numPortas[1000][15], servicoPorta[1000][20]; 15 caracter macadress[100][512], nmac[100][512], nomeFabr[100][512];

16 caracter numPortasAux[1000][15], macForn[1000][15], macFornAux[1000][15];

17 inteiro hosts = 0, macs = 0, i, j, portasAbertas = 0, contadorPortas[1000], contadorMacs[1000]; 18 real porcPorta[1000];

19 //Abertura do Arquivo gerado pelo Nmap 20 ARQUIVO *file;

21 file= abrirArquivo("nmap.txt", "r"); 22 //Validação do arquivo aberto 23 se(file == NULL){

24 escreva("Nao foi possivel abrir o arquivo."); 25 }senão{

26 //processamento de dados

27 enquanto((linhaCapturada(line, 1000, file)) != NULL){ 28 //Inicia a Variável para contagem de portas abertas 29 contadorPortas[portasAbertas] = 0;

30 //verifica na linha a existência das palavras entre "" 31 se((line == "/udp") e (line == "/tcp") ou (line == "open")){ 32 //adiciona ao vetor o numero da porta e o servico da mesma 33 leia(line, " ", numPortas[portasAbertas]," ", nulo1, "

",servicoPorta[portasAbertas]); 34 para(i = 0; line[i] != '/'; i++){

35 numeroPorta[portasAbertas][i] = numPortas[portasAbertas][i];

36 }

37 numPortasAux[portasAbertas] = numeroPorta[portasAbertas]; 38 //associa o servico a porta

39 para(i = 0; i <= portasAbertas; i++){ 40 para(j = 0; j <= portasAbertas; j++){ 41 se(numeroPorta[i] == numPortasAux[j]){ 42 numPortasAux[j] = " "; 43 contadorPortas[i]++; 44 } 45 } 46 } 47 }

48 //copia o numero de ip para o vetor e adiciona 1 a variavel contadora hosts 49 se(line == "Nmap scan report"){

50 leia(line," ", nulo1, " ", nulo2, " ", nulo3, " ", nulo4, " ",

ip[hosts]);

51 hosts++;

52 }

53 //copia o numero do mac para o vetor e adicona 1 a variavel contadora macs 54 se(line == "MAC Address:"){

55 leia(line," ", nulo1," ", nulo2, " ", nmac[macs]); 56 para(i = 32; line[i] != ')'; i++){

57 nomeFabr[macs][i - 32] = line[i];

58 }

59 para(i = 0; i < 9; i++){

60 macForn[macs][i] = nmac[macs][i];

61 }

62 contadorMacs[macs] = 0;

63 macFornAux[macs] = macForn[macs]; 64 para(i = 0; i <= macs; i++){ 65 para(j = 0; j <= macs; j++){ 66 se(macForn[i] == macFornAux[j]){ 67 macFornAux[j] = " "; 68 contadorMacs[i]++; 69 } 70 } 71 } 72 macs++;

73 //adiciona 1 na variavel contadora portasAbertas

74 }

75 se (line == "open") {

76 portasAbertas++;

(12)

Apendice B

78 se (line == "open|filtered ports"){

79 portasAbertas--;

80 }

81 }

82 }

83 //Fechamento do arquivo do Nmap 84 fecharArquivo(file);

85 //Saída de dados

86 escreva("#### RELATORIO DE ANALISE DO ARQUIVO DO NMAP ####"); 87 se(hosts == 1){

88 escreva("Existe [ ", hosts, "] Host Ativo."); 89 }senão{

90 escreva("Existem [ ", hosts, " ] Hots Ativos."); 91 }

92 se(portasAbertas == 1){

93 escreva("Existe [ ", portasAbertas, " ] Porta Aberta."); 94 }senão{

95 escreva("Existem [ "portasAbertas, " ] Portas Abertas."); 96 }

97 escreva("#### FREQUENCIA DE CADA PORTA ABERTA ####");

98 escreva(" +---+"); 99 escreva(" |--- Porta --- | --- Frequencia --- | --- Porcentagem do Total --- |"); 100 escreva(" +---+"); 101 para(i = 0; i < portasAbertas; i++){

102 se(contadorPortas[i] >= 1){

103 porcPorta[i] = ((contadorPortas[i] * 100.00) / portasAbertas);

104 escreva(" | ", numeroPorta[i], " | ", contadorPortas[i], " | ", porcPorta[i],"% |";

105 }

106 }

107 escreva(" +---+"); 108 escreva("#### DESCRICAO DOS SERVICOS DISPONIVEIS ####");

109 escreva(" +---+"); 110 escreva(" |--- Porta --- | --- Servico --- |"); 111 escreva(" +---+"); 112 para(i = 0; i < portasAbertas; i++){

113 se(contadorPortas[i] >= 1) {

114 escreva(" | ", numeroPorta[i]," | ", servicoPorta[i]);

115 }

116 }

117 escreva(" +---+"); 118 escreva("#### DESCRICAO DOS ENDERECOS ETHERNET ####"); 119 escreva(" +---+"); 120 escreva(" | --- IP --- | --- Mac Address --- |"); 121 escreva(" +---+"); 122 para(i = 0; i < macs; i++){

123 escreva(" | ", ip[i]," | ", nmac[i]," |"); 124 }

125 se(hosts > macs){

126 escreva(" | ", ip[i]," | MAC Desconhecido | --> Local Host <--"); 127 }

128 escreva(" +---+"); 129 escreva("#### TOTAL ENDERECO ETHERNET POR FABRICANTE ####");

130 escreva(" +---+"); 131 escreva(" |- Total - | --- MAC --- | --- Fabricante --- |"); 132 escreva(" +---+"); 133 para(i = 0; i < macs; i++){

134 se(contadorMacs[i] >= 1){

135 escreva(" | ", contadorMacs[i]," | ", macForn[i]," | ", nomeFabr[i]);

136 }

137 }

138 escreva(" +---+"); 139 escreva("Fim de Programa");

(13)

Apendice C

1 /*Alunos: Jonas Pires de Campos Neto 2 Rangel Rodigues Xavier de Assis

3 Raphael Pereira Modanez

4

5 Descrição: Programa em C para leitura de um arquivo gerado a partir de um scaneamento da rede 6 atravez do programa Nmap (utilizado o Zenmap, plataforma para windows do Nmap), e 7 através deste programa informar: 1. A frequência de cada porta aberta; 2. Descrição 8 dos serviços disponíveis de acordo com a porta aberta; 3. Descrição dos endereços

9 Ethernet; 4. Total de Endereços Ethernet por fabricante.*/

10

11 #include <stdio.h>

12 #include <stdlib.h>

13 #include <string.h>

14 int main(void) {

15 //Declaração de variaveis

16 char line[1000], lineAux[1000], ip[1000][20];

17 char macadress[100][512], nmac[100][512], nomeFabr[100][512], servicoPorta[1000][20]; 18 char numPortas[1000][15], numPortasAux[1000][15], macForn[1000][15], macFornAux[1000][15]; 19 char numeroPorta[1000][15];

20 int hosts = 0, macs = 0, i, j, portasAbertas = 0, contadorPortas[1000], contadorMacs[1000]; 21 float porcPorta[1000];

22 //Abertura do Arquivo Nmap 23 FILE *file;

24 file= fopen("nmap.txt", "r"); 25 //Validacao do Arquivo 26 if(file == NULL){

27 printf("Nao foi possivel abrir o arquivo.\n"); 28 return 0;

29 }else{

30 //Processamento de dados

31 while((fgets(line, sizeof(line), file)) != NULL){ 32 //Inicia a variavel para contagem de portas abertas 33 contadorPortas[portasAbertas] = 0;

34 if((strstr(line, "/udp")) && (strstr(line, "/tcp")) || (strstr(line, "open"))){ 35 //Adiciona ao vetor o numero da porta e o servico da mesma

36 sscanf(line, "%s %*s %s", numPortas[portasAbertas], servicoPorta[portasAbertas]); 37 for(i = 0; line[i] != '/'; i++){

38 numeroPorta[portasAbertas][i] = numPortas[portasAbertas][i];

39 }

40 strcpy(numPortasAux[portasAbertas], numeroPorta[portasAbertas]); 41 //Associa o servico a porta

42 for(i = 0; i <= portasAbertas; i++){ 43 for(j = 0; j <= portasAbertas; j++){ 44 if(strcmp(numeroPorta[i], numPortasAux[j]) == 0){ 45 strcpy(numPortasAux[j], " "); 46 contadorPortas[i]++; 47 } 48 } 49 } 50 }

51 //Copia o numero de ip para o vetor e adiciona 1 a variavel contadora hosts 52 if((strncmp(line, "Nmap scan report", 16)) == 0){

53 sscanf(line,"%*s %*s %*s %*s %s", ip[hosts]);

54 hosts++;

55 }

56 //Copia o numero de mac para o vetor e adiciona 1 a variavel contadora macs 57 if((strncmp(line, "MAC Address:", 11)) == 0){

58 sscanf(line,"%*s %*s %s", nmac[macs]); 59 for(i = 32; line[i] != ')'; i++){ 60 nomeFabr[macs][i - 32] = line[i];

61 }

62 for(i = 0; i < 9; i++){

63 macForn[macs][i] = nmac[macs][i];

64 }

65 contadorMacs[macs] = 0;

66 strcpy(macFornAux[macs], macForn[macs]); 67 for(i = 0; i <= macs; i++){ 68 for(j = 0; j <= macs; j++){ 69 if(strcmp(macForn[i], macFornAux[j]) == 0){ 70 strcpy(macFornAux[j], " "); 71 contadorMacs[i]++; 72 } 73 } 74 } 75 macs++; 76 }

77 //adiciona 1 na variavel contadora portasAbertas 78 if (strstr(line, "open")) {

(14)

Apendice C

80 }

81 if (strstr(line, "open|filtered ports")){

82 portasAbertas--; 83 } 84 } 85 } 86 //Fechamento do arquivo 87 fclose(file); 88 //Saída de dados

89 printf("\n#################### RELATORIO DE ANALISE DO ARQUIVO DO NMAP ####################\n\n");

90 if(hosts == 1){

91 printf("Existe [ %d ] Host Ativo.\n\n", hosts); 92 }else{

93 printf("Existem [ %d ] Hots Ativos.\n\n", hosts); 94 }

95 if(portasAbertas == 1){

96 printf("Existe [ %d ] Porta Aberta.\n\n", portasAbertas); 97 }else{

98 printf("Existem [ %d ] Portas Abertas.\n\n", portasAbertas); 99 }

100 printf("####################### FREQUENCIA DE CADA PORTA ABERTA #######################\n\n"); 101 printf(" +---+\n"); 102 printf(" |--- Porta --- | --- Frequencia --- | --- Porcentagem do Total --- |\n");

103 printf(" +---+\n"); 104 for(i = 0; i < portasAbertas; i++){

105 if(contadorPortas[i] >= 1){

106 porcPorta[i] = ((contadorPortas[i] * 100.00) / portasAbertas);

107 printf(" | %5s | %3d | %.2f%% |\n", numeroPorta[i],

contadorPortas[i], porcPorta[i]);

108 }

109 }

110 printf(" +---+\n\n"); 111 printf("##################### DESCRICAO DOS SERVICOS DISPONIVEIS ####################\n\n"); 112 printf(" +---+\n");

113 printf(" |--- Porta --- | --- Servico --- |\n"); 114 printf(" +---+\n"); 115 for(i = 0; i < portasAbertas; i++){

116 if(contadorPortas[i] >= 1) {

117 printf(" | %5s | %s\n", numeroPorta[i], servicoPorta[i]);

118 }

119 }

120 printf(" +---+\n\n");

121 printf("##################### DESCRICAO DOS ENDERECOS ETHERNET ####################\n\n"); 122 printf(" +---+\n");

123 printf(" | --- IP --- | --- Mac Address --- |\n"); 124 printf(" +---+\n"); 125 for(i = 0; i < macs; i++){

126 printf(" | %s | %s |\n", ip[i], nmac[i]); 127 }

128 if(hosts > macs){

129 printf(" | %s | MAC Desconhecido* | * --> Local Host <--\n", ip[i]); 130 }

131 printf(" +---+\n\n");

132 printf("################### TOTAL ENDERECO ETHERNET POR FABRICANTE ##################\n\n"); 133 printf(" +---+\n");

134 printf(" |- Total - | --- MAC --- | --- Fabricante --- |\n"); 135 printf(" +---+\n"); 136 for(i = 0; i < macs; i++){

137 if(contadorMacs[i] >= 1){

138 printf(" | %3d | %s | %s\n", contadorMacs[i], macForn[i], nomeFabr[i] );

139 }

140 }

141 printf(" +---+\n"); 142 return 0;

(15)

15

PRINT DO PROGRAMA EM EXECUÇÃO

(16)
(17)

Referências

Documentos relacionados

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

A versão reduzida do Questionário de Conhecimentos da Diabetes (Sousa, McIntyre, Martins &amp; Silva. 2015), foi desenvolvido com o objectivo de avaliar o

O caso de gestão a ser estudado irá discutir sobre as possibilidades de atuação da Pró-Reitoria de Assistência Estudantil e Educação Inclusiva (PROAE) da

A Proposta Curricular da Rede Municipal de Ensino de Juiz de Fora para a educação infantil se fundamenta na ideia contida nas Diretrizes Educacionais para a Rede

Esta dissertação pretende explicar o processo de implementação da Diretoria de Pessoal (DIPE) na Superintendência Regional de Ensino de Ubá (SRE/Ubá) que

O Plano de Metas Compromisso Todos pela Educação, de 2007, e a Política Nacional de Formação de Profissionais do Magistério da Educação Básica, instituída em 2009 foram a base

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento